#amazon-web-services #aws-cli #amazon-route53
#amazon-web-services #aws-cli #amazon-route53
Вопрос:
Я пытаюсь добавить записи DNS в существующую размещенную зону. Я пробовал следующую команду с типом ResourceRecordSet в качестве записи, а также с записью CNAME. Команда, которая пытается создать запись, завершается с ошибкой, но та же команда при изменении на CNAME работает
Сбой команды
aws route53 change-resource-record-sets --hosted-zone-id XXXXXXXXXXXXX --change-batch {"Changes": [{"Action": "CREATE","ResourceRecordSet": {"Name": "api-test-1.envio.systems","Type": "A","TTL": 30,"ResourceRecords": [{"Value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-14xxxxxxxxxxxxx26.elb.eu-central-1.amazonaws.com"}]}}]}
Ошибка:
Произошла ошибка (InvalidChangeBatch) при вызове операции ChangeResourceRecordSets: [Недопустимая запись ресурса: НЕУСТРАНИМАЯ проблема: ARRDATAIllegalIPv4Address (значение не является допустимым адресом IPv4), возникшая с ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-14xxxxxxxxxxxxx26.elb.eu-central-1.amazonaws.com .»]
Приведенная ниже команда работает, и единственное, что изменяется, это тип ResourceRecordSet с A на CNAME
aws route53 change-resource-record-sets --hosted-zone-id XXXXXXXXXXXXX --change-batch {"Changes": [{"Action": "CREATE","ResourceRecordSet": {"Name": "api-test-st-1.envio.systems","Type": "CNAME","TTL": 30,"ResourceRecords": [{"Value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-14xxxxxxxxxxxxx26.elb.eu-central-1.amazonaws.com"}]}}]}
В чем проблема и почему CNAME работает с той же командой, но не с записью?
Ответ №1:
В DNS запись A
(«адрес») указывает на адрес IPv4. CNAME
Запись указывает на другое DNS-имя.
В AWS есть концепция псевдонимов записей, которая по сути представляет собой запись CNAME, которая выполняет внутренний поиск значения по маршруту 53 и выводится как запись A.
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-elb-load-balancer.html описывает, как настроить запись псевдонима. https://aws.amazon.com/premiumsupport/knowledge-center/alias-resource-record-set-route53-cli / рассказывает о том, как сделать это с помощью CLI, который более точно представляет поля, которые принимает API. По сути, вы указываете идентификатор размещенной зоны DNS-записи ELB вместе с ее адресом.