Como faço para criar um conjunto simples de registros de recursos no Amazon Route 53 usando o AWS CLI?

3 minuto de leitura
0

 Quero usar o AWS Command Line Interface (AWS CLI) para criar um conjunto de registros de recursos simples no Amazon Route 53.

Resolução

Para criar, excluir ou alterar (atualizar) um conjunto de registros de recursos, use uma solicitação ChangeResourceRecordSets para a API Route 53.

Observação: se você receber erros ao executar comandos da AWS CLI, verifique se está utilizando a versão mais recente da AWS CLI.

Criar uma solicitação ChangeResourceRecordSets

Você pode realizar as seguintes ações com uma solicitação ChangeResourceRecordSets:

  • CREATE: cria um conjunto de registros com um valor especificado na zona hospedada.
  • DELETE: exclui um conjunto de registros com um valor especificado na zona hospedada.
  • UPSERT: cria um novo conjunto de registros com um valor especificado ou atualiza um conjunto de registros com um valor especificado se esse conjunto de registros já existir.

Para criar, excluir ou alterar um conjunto de registros A simples, modifique o seguinte exemplo de arquivo JSON (sample.json). O corpo da solicitação inclui uma lista de itens de alteração, conhecida como lote de alterações:

{
            "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 criar um conjunto de registros de recursos para seu domínio na zona hospedada, use a API Route 53 com o comando change-resource-record-sets. O arquivo sample.json especifica os valores para a criação do registro:

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

Um status de PENDING é retornado com o ID exclusivo:

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

Se você não vir esse status com o ID, então há um erro no arquivo JSON.

Para verificar o status das alterações, use a chamada de API get-change com o valor de Id da sua resposta change-resource-record-sets:

  • PENDING indica que as alterações nessa solicitação ainda não foram propagadas para todos os servidores DNS do Route 53. Esse é o status inicial de todas as solicitações de alteração em lote.
  • **INSYNC ** indica que as alterações são propagadas para todos os servidores DNS do Route 53.

Aqui está um status PENDING antes da propagação:

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

Aqui está um status INSYNC após a propagação:

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

Criar solicitações simultâneas

Você deve usar chaves de ação separadas para cada solicitação simultânea. Por exemplo, você não pode criar um registro A e um registro MX em uma única solicitação. Em vez disso, você deve criar dois conjuntos de registros para o mesmo nome de domínio com o seguinte 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"}]
                           }}
]
}

Informações relacionadas

Como soluciono os erros que recebi ao criar conjuntos de registros de recursos do Route 53 usando o AWS CLI?

AWS OFICIAL
AWS OFICIALAtualizada há um ano