Il est possible de modifier un enregistrement DNS en ligne de commande ( cli ) et un fichier json :

Pour cela il faut connaître l'identifiant de la zone ou se trouve l'enregistrement DNS à modifier

la commande pour connaître cet identifiant :

aws route53 list-hosted-zones --profile <nom_de_votre_profile>

L'option --profile correspond au nom que vous avez donné dans votre fichier de configuration, il peut être optionnel si vous n'avez qu'un seul compte AWS (qui correspond à un seul profile)

la commande vous renvoie la liste de vos zone 

l'identifiant correspond a la ligne :

"Id": "/hostedzone/<identifiant_de_la_zone>",

 

Construction du fichier json

UPSERT correspond à l'action à faire , soit ici modifier, si l'enregistrement n'existe pas il sera créé.

les actions possible sont :

  • CREATE pour créer un enregistrement
  • UPSERT pour modifier un enregistrement
  • DELETE pour supprimer un enregistrement

Contenu du fichier json :

 {
     "Comment": "glf res newsletter change ssl using cloudflare",
     "Changes": [
         {
             "Action": "UPSERT",
             "ResourceRecordSet": {
                 "Name": "<nom_de_l_enregistrement_du_TXT>.",
                 "Type": "TXT",
                 "TTL": 300,
                 "ResourceRecords": [
                     {
                         "Value": "valeur_du_TXT"
                     }
                 ]
             }
         }
     ]
 }

 

Commande pour envoyer le fichier à route 53 :

aws route53 change-resource-record-sets --hosted-zone-id <id-de-la-zone> --change-batch file://<glf-dns-res-cli.json-fichier> --profile <nom_de_votre_profile>

<id-de-la-zone> correspond au résultat renvoyé de la commande précédente (aws route53 list-hosted-zones --profile <nom_de_votre_profile>)

L'option --profile correspond au nom que vous avez donné dans votre fichier de configuration, il peut être optionnel si vous n'avez qu'un seul compte AWS (qui correspond à un seul profile)

Pour vérifier l'état d'avancement  :

aws route53 get-change --id <id_donné_dans_le_retour_renvoyé_par_aws_de_la_commande_passée> --profile <nom_de_votre_profile>

 L'option --profile correspond au nom que vous avez donné dans votre fichier de configuration, il peut être optionnel si vous n'avez qu'un seul compte AWS (qui correspond à un seul profile)