Создание AWS записи с использованием `change-resource-record-sets`: RRset с DNS-именем domain.com . не разрешен в зоне 47domain.com47

#bash #amazon-web-services #shell #aws-cli

#bash #amazon-веб-сервисы #оболочка #aws-cli

Вопрос:

У меня есть следующий код:

   project_record_batch='{
    "Comment": "Testing creating a record set",
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "domain.com",
        "Type": "A",
        "TTL": 120,
        "ResourceRecords": [ { "Value": "18.xxx.xxx.xxx" } ]
      }
    }]
  }'

  aws route53 change-resource-record-sets 
    --hosted-zone-id "/hostedzone/Z..." 
    --change-batch "${project_record_batch}"
    --region eu-west-2
 

он возвращает следующую ошибку:

 An error occurred (InvalidChangeBatch) when calling the ChangeResourceRecordSets operation: 
[RRSet with DNS name domain.com. is not permitted in zone 47domain.com47.]
 

Я пытался:

  • Создание --hosted-zone-id справедливого Z... ,
  • Сохранение набора записей в файл и использование --change-batch file://record-set.json ,
  • Прикрепление завершающего . элемента к Name (т.е. domain.com. )
  • Комбинаторный из вышеперечисленного

Что я делаю не так?


Также просто попробовал следующее для пакетной полезной нагрузки:

 project_record_batch='{
     "Comment": "Testing creating a record set",
     "Changes": [{
       "Action": "CREATE",
       "ResourceRecordSet": {
         "Name": "domain.com.",
         "Type": "A",
         "AliasTarget": { 
            "HostedZoneId": "Z...",
            "DNSName": "18.xxx.xxx.xxx",
            "EvaluateTargetHealth": false
         }
       }
     }]
   }'
 

который дал следующее:

 An error occurred (InvalidChangeBatch) when calling the 
ChangeResourceRecordSets operation: [Tried to create an alias that 
targets 18.xxx.xxx.xxx., type A in zone Z..., 
but the alias target name does not lie within the target zone, 
Tried to create an alias that targets 18.xxx.xxx.xxx., type A in 
zone Z..., but that target was not found, RRSet 
with DNS name domain.com. is not permitted in zone 
domain.com47.]

 

Ответ №1:

Оказывается, что при программном создании зоны размещения DNS я неправильно процитировал переменную для имени домена, отсюда и странный 47 материал, который представляет собой код символа обратной косой черты ASCII, вероятно, чтобы избежать указанных кавычек на стороне сервера AWS. В итоге получилось как 'domain.com' , а domain.com не как . Это, похоже, вызвало много проблем с другими командами.

tl; dr убедитесь, что вы не обжигаетесь из-за проблем с цитированием оболочки при использовании aws cli