2016-11-21 99 views
2

我正在嘗試通過Amazon CLI爲DNS-01驗證在Route53中創建TXT記錄。看起來我非常接近但可能遇到CLI問題(或者我看不到的格式問題)。正如你所看到的,它的抱怨,應該在引號中的價值,但確實是在引號已經...亞馬遜CLI,路由53,TXT錯誤

命令行:

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' 

回答

1

這些引號是JSON引號,而那些引號不是他們要找的引號。

JSON字符串"test"對文字值test進行編碼。

JSON字符串"\"test\""對文字值"test"進行編碼。

(這是因爲在JSON中,字符串中的字面值"以前導\轉義)。

這聽起來像他們想實際,文字引號內包括的價值,因此,如果您正在構建這個JSON手動您可能希望後者:"Value": "\"test\""

JSON庫應該爲你做這個,如果你通過它包含前導和尾隨"的值。

+0

現貨。謝謝!有趣的是,他們不希望所有的字符串參數都與這樣的轉義引號一起提供。 – BRass

+1

這是因爲這是一個'TXT'記錄,[它是一個帶引號的字符串,根據定義](https://tools.ietf.org/html/rfc1464)...所以Route 53希望看到記錄中的實際引號。 –

+0

*「TXT記錄包含空格分隔的雙引號字符串列表。」* - http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#TXTFormat –