Comment créer un ensemble d'enregistrements de ressources simple dans Amazon Route 53 à l'aide de la CLI AWS ?

Dernière mise à jour : 08-01-2021

Comment puis-je créer un ensemble d'enregistrements de ressources simple dans Amazon Route 53 à l'aide de l'interface de ligne de commande AWS (AWS CLI) ?

Brève description

Vous pouvez créer, supprimer ou modifier (upsert) un ensemble d'enregistrements de ressources à l'aide d'une demande ChangeResourceRecordsets vers l' API Route 53.

Solution

Remarque : Si vous recevez des erreurs lors de l'exécution des commandes dans AWS CLI, assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Créer une demande ChangeResourceRecordsets

Vous pouvez effectuer les actions suivantes à l'aide d'une demande ChangeResourceRecordsets :

  • CREATE crée un ensemble d'enregistrements avec une valeur spécifiée dans la zone hébergée.
  • DELETE supprime un ensemble d'enregistrements avec une valeur spécifiée dans la zone hébergée.
  • UPSERT crée un nouvel ensemble d'enregistrements avec une valeur spécifiée ou met à jour un ensemble d'enregistrements avec une valeur spécifiée si ce ensemble d'enregistrements existe déjà.

Modifiez l'exemple de fichier JSON suivant (sample.json) pour créer, supprimer ou modifier un ensemble d'enregistrements A simple. Le corps de la demande comprend une liste d'éléments de modification, appelé lot de modifications :

{
            "Comment": "CREATE/DELETE/UPSERT a record ",
            "Changes": [{
            "Action": "CREATE",
                        "ResourceRecordSet": {
                                    "Name": "a.example.com",
                                    "Type": "A",
                                    "TTL": 300,
                                 "ResourceRecords": [{ "Value": "4.4.4.4"}]
}}]
}

Créez un ensemble d'enregistrements de ressources pour votre domaine dans la zone hébergée à l'aide de l'API Route 53 avec la commande change-resource-record-sets. Le fichier sample.json spécifie les valeurs pour la création d'enregistrements.

$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json

Un statut PENDING doit être renvoyé avec l'ID unique, sauf s'il y a une erreur dans le fichier JSON :

$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXXX --change-batch file://sample.json
{
    "ChangeInfo": {
        "Status": "PENDING", 
        "Comment": "optional comment about the changes in this change batch request", 
        "SubmittedAt": "2018-07-10T19:39:37.757Z", 
        "Id": "/change/C3QYC83OA0KX5K"
    }
}

Utilisez l'appel d'API get-change avec la valeur Id de votre réponse change-resource-record-sets pour vérifier le statut des modifications :

  • PENDING indique que les modifications apportées à cette demande ne se sont pas encore propagées sur tous les serveurs DNS Route 53. Il s'agit du statut initial de toutes les demandes par lot de modifications.
  • INSYNC indique que les modifications se sont propagées sur tous les serveurs DNS Route 53.

Avant la propagation :

aws route53  get-change --id /change/C3QYC83OA0KX5K
{
    "ChangeInfo": {
        "Status": "PENDING", 
        "Comment": "optional comment about the changes in this change batch request", 
        "SubmittedAt": "2018-07-10T19:39:37.757Z", 
        "Id": "/change/C3QYC83OA0KX5K"
    }
}

Après la propagation :

$ aws route53  get-change --id /change/C3QYC83OA0KX5K
{
    "ChangeInfo": {
        "Status": "INSYNC", 
        "Comment": "optional comment about the changes in this change batch request", 
        "SubmittedAt": "2018-07-10T19:39:37.757Z", 
        "Id": "/change/C3QYC83OA0KX5K"
    }

Créer des demandes simultanées

Vous devez utiliser des clés Action distinctes pour chaque demande simultanée. Par exemple, vous ne pouvez pas créer un enregistrement A et un enregistrement MX dans une même demande. Au lieu de cela, vous devez créer deux ensembles d'enregistrements pour le même nom de domaine en utilisant le format suivant :

{
                "Comment": "CREATE/DELETE/UPDATE",
                 "Changes": [ {
                             "Action": "CREATE",
                            "ResourceRecordSet": {
                                "Name": "a.example.com",
                                    "Type": "A",
                                     "TTL": 300,
                                  "ResourceRecords": [{"Value": "5.5.5.5"}]
                            }},
{
                            "Action": "CREATE",
                            "ResourceRecordSet": {
                                 "Name": "a.example.com",
                                 "Type": "MX",
                                  "TTL": 300,
                                  "ResourceRecords": [{"Value": "10 example.com"}]
                           }}
]
}

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?