亚马逊CLI,路由53,TXT错误

BRa*_*ass 7 amazon-web-services amazon-route53 aws-cli

我正在尝试通过Amazon CLI在Route53中创建TXT记录以进行DNS-01验证.似乎我非常接近但可能遇到CLI问题(或我没有看到的格式问题).正如你所看到的,它抱怨一个应该在引号中的值,但确实在引号中......

命令行:

aws route53 change-resource-record-sets --hosted-zone-id ID_HERE --change-batch file://c:\dev\test1.json
Run Code Online (Sandbox Code Playgroud)

JSON文件:

{
"Changes": [
    {
        "Action": "UPSERT",
        "ResourceRecordSet": {
            "Name": "DOMAIN_NAME_HERE",
            "Type": "TXT",
            "TTL": 60,
            "ResourceRecords": [
                {
                    "Value": "test"
                }
            ]
        }
    }
]
}
Run Code Online (Sandbox Code Playgroud)

错误:

An error occurred (InvalidChangeBatch) when calling the ChangeResourceRecordSets operation: Invalid Resource Record: FATAL problem: InvalidCharacterString (Value should be enclosed in quotation marks) encountered with 'test'
Run Code Online (Sandbox Code Playgroud)

Mic*_*bot 9

那些引号是JSON引号,而那些不是他们正在寻找的引号.

JSON字符串"test"对文字值进行编码test.

JSON字符串"\"test\""对文字值进行编码"test".

(这是因为在JSON中,"字符串中的文字使用前导进行转义\).

这听起来像他们想包括实际,文字引号的值,所以如果你正在构建这个JSON手动您可能希望后者:"Value": "\"test\"".

如果您传递了"包含前导和尾随的值,JSON库应该为您执行此操作.

  • 这是因为这是一个 `TXT` 记录,它[根据定义是一个带引号的字符串](https://tools.ietf.org/html/rfc1464)...所以 Route 53 希望在记录中看到实际的引号。 (2认同)