使用 aws cli 在 lightsail 条目中创建 DNS

Create DNS in lightsail entry using aws cli

有没有人有关于如何使用 aws cli 为 lightsail 托管域创建 dns 条目的示例?

我没能找到 create-domain-entry 子命令的 --domain-entry 参数的格式示例。

下面的命令将使用 CLI 创建一个 A 记录

aws lightsail create-domain-entry \ --domain-name mikegcoleman.com \ --region us-east-1 --domain-entry \ name=blog.mikegcoleman.com,target=52.40.235.176,isAlias=false,type=A

请注意,您需要指定区域,因为需要对 us-east-1 执行使用 Lightsail CLI 的所有域操作

对于 TXT 记录,以下应该有效。我认为 CLI 有一些奇怪的地方,它不喜欢内联域条目,需要 JSON 来做 TXT 记录,所以它的格式与上面不同:

aws lightsail --region us-east-1 \
create-domain-entry \
--domain-name 'mikegcoleman.com' \
--domain-entry '{"name":"test.mikegcoleman.com","target":"\"response\"","isAlias":false,"type":"TXT"}'

我利用 Mike 的语法为 DMARC 创建了一个 TXT 记录。 (谢谢迈克!)

我一直在尝试在 UI 中创建它。我不断收到此错误:Input error: Target should be enclosed in quotation marks: ""v=DMARC1; p=none; rua="mailto:dmarc@YOURDOMAINNAME.com"".

在尝试使用不同的推荐报价配置多次后,我放弃了 UI,并在 bash 脚本中使用了 Mike 的语法。就我而言,我还删除了 rua 部分内电子邮件地址周围的额外引号。这可能是我在 UI.

中出错的根源

以下是为我成功创建 DMARC 记录的原因:

#!/usr/bin/bash

aws lightsail --region us-east-1 \
create-domain-entry \
--domain-name 'YOURDOMAINNAME.com' \
--domain-entry '{"name":"_dmarc.YOURDOMAINNAME.com","target":"\"v=DMARC1; p=none; rua=mailto:dmarcreports@YOURDOMAINNAME.com\"","isAlias":false,"type":"TXT"}'

当然,将 YOURDOMAINNAME 替换为您的域名,并将 mailto 名称替换为您希望接收 DMarc 报告的电子邮件地址。

是的!

@binarybelle 的回答是创建一个 BASH 脚本并添加命令作为 JSON 版本对我也有用,以便为 DKIM 添加 TXT 条目。

长 DKIM 条目的额外技巧是将文本密钥分成两部分,因此很多转义额外的 double-quotes :-)

#!/bin/bash

/usr/local/bin/aws lightsail --region us-east-1 \
create-domain-entry --domain-name 'mydomain.co.uk' \
--domain-entry '{"name":"default._domainkey.mydomain.co.uk","target":"\"v=DKIM1; h=sha256; k=rsa; \" \"p=MIIBIjxxxxxxxxxxxiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAurVgfLc8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9cRHBTEOIR4lmIgatpit\" \"t+v7oQzngmfKpBNoTeyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQIDAQAB\"","isAlias":false,"type":"TXT"}'