我尝试通过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
JSON文件:
{
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "DOMAIN_NAME_HERE",
"Type": "TXT",
"TTL": 60,
"ResourceRecords": [
{
"Value": "test"
}
]
}
}
]
}
错误:
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'
答案 0 :(得分:6)
这些引号是JSON引号,而不是它们正在寻找的引号。
JSON字符串"test"
对文字值test
进行编码。
JSON字符串"\"test\""
对文字值"test"
进行编码。
(这是因为在JSON中,字符串中的文字"
使用前导\
进行转义。
听起来他们想要在里面包含值的实际字面引号,所以如果你手动构建这个JSON,你可能想要后者:"Value": "\"test\""
。
如果您传递了包含前导和尾随"
的值,JSON库应该为您执行此操作。