2016-11-21 4 views
2

Je tente de créer un enregistrement TXT dans Route53 via la validation Amazon CLI pour DNS-01. On dirait que je suis très proche, mais peut-être en cours d'exécution dans un problème de CLI (ou un problème de formatage que je ne vois pas). Comme vous pouvez le voir, il se plaint autour d'une valeur qui devrait être entre guillemets, mais est en effet déjà entre guillemets ...Amazon CLI, route 53, erreur TXT

ligne de commande:

aws route53 change-resource-record-sets --hosted-zone-id ID_HERE --change-batch file://c:\dev\test1.json 

JSON fichier:

{ 
"Changes": [ 
    { 
     "Action": "UPSERT", 
     "ResourceRecordSet": { 
      "Name": "DOMAIN_NAME_HERE", 
      "Type": "TXT", 
      "TTL": 60, 
      "ResourceRecords": [ 
       { 
        "Value": "test" 
       } 
      ] 
     } 
    } 
] 
} 

erreur :

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' 

Répondre

1

Ces guillemets sont les guillemets JSON, et ce ne sont pas les guillemets qu'ils recherchent. La chaîne JSON "test" code la valeur littérale test. La chaîne JSON "\"test\"" code la valeur littérale "test".

(Cela est dû au fait que dans JSON, un littéral " dans une chaîne est échappé avec un \).

Il sonne comme ils veulent des citations réelles, littérales inclus dans la valeur, donc si vous construisez ce JSON vous manuellement voulez sans doute celui-ci: "Value": "\"test\"".

Une bibliothèque JSON doit le faire pour vous si vous lui avez transmis la valeur avec les informations " avant et arrière incluses.

+0

Spot sur. Merci! Intéressant qu'ils ne veulent pas tous les paramètres de chaîne fournis avec des citations échappées comme ceci. – BRass

+1

C'est parce que c'est un enregistrement 'TXT', qui [est une chaîne entre guillemets, par définition] (https://tools.ietf.org/html/rfc1464) ... donc Route 53 s'attend à voir des citations réelles dans l'enregistrement . –

+0

* "Un enregistrement TXT contient une liste de chaînes entre guillemets doubles séparées par des espaces." * - http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#TXTFormat –