¿Como puedo crear un conjunto simple de registros de recursos en Amazon Route 53 con la AWS CLI?

4 minutos de lectura
0

 Quiero usar la Interfaz de la línea de comandos de AWS (AWS CLI) para crear un conjunto simple de registros de recursos en Amazon Route 53.

Solución

Para crear, eliminar o modificar (actualizar o insertar) un conjunto de registros de recursos, utilice una solicitud ChangeResourceRecordSets para la API de Route 53.

Nota: Si se muestran errores al ejecutar los comandos de la AWS CLI, asegúrese de utilizar la versión más reciente de la AWS CLI.

Creación de una solicitud ChangeResourceRecordSets

Con una solicitud ChangeResourceRecordSets puede realizar las siguientes acciones:

  • CREATE: crea un conjunto de registros con un valor especificado en la zona alojada.
  • DELETE: elimina un conjunto de registros con un valor especificado en la zona alojada.
  • UPSERT: crea un nuevo conjunto de registros con un valor especificado o actualiza un conjunto de registros con un valor especificado si el conjunto de registros ya existe.

Para crear, eliminar o modificar un conjunto simple de registros A, modifique el siguiente archivo JSON de ejemplo (sample.json). El cuerpo de la solicitud incluye un lote de cambios, es decir, una lista de los elementos que se deben modificar:

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

Para crear un conjunto de registros de recursos para su dominio en la zona alojada, utilice la API de Route 53 con el comando change-resource-record-sets. En el archivo sample.json se especifican los valores para la creación de registros:

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

Si el valor de Status es PENDING, se devolverá el identificador único:

$ 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"
    }
}

Si no ve este estado con el identificador, significa que hay un error en el archivo JSON.

Para comprobar el estado de los cambios, utilice la llamada a la API get-change con el valor de Id de la respuesta a change-resource-record-sets:

  • PENDING indica que los cambios en la solicitud no se han propagado todavía a todos los servidores DNS de Route 53. Este es el estado inicial de todas las solicitudes del lote de cambios.
  • INSYNC indica que los cambios se propagan a todos los servidores DNS de Route 53.

Antes de la propagación, el estado es PENDING:

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"
    }
}

Después de la propagación, el estado es INSYNC:

$ 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"
    }

Creación de solicitudes simultáneas

Utilice claves Action separadas para cada solicitud simultánea. Por ejemplo, no puede crear un registro A y un registro MX con una sola solicitud. En vez de esto, debe crear dos conjuntos de registros para el mismo nombre de dominio con el siguiente formato:

{
                "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"}]
                           }}
]
}

Información relacionada

¿Cómo soluciono los errores que he recibido al crear conjuntos de registros de recursos de Route 53 mediante la AWS CLI?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año