AWS меняет запись на частный IP-адрес - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь написать скрипт, который позволил бы экземплярам обновлять набор записей в AWS каждый раз, когда запускается новый.Я следую этому руководству: https://aws.amazon.com/premiumsupport/knowledge-center/simple-resource-record-route53-cli/

Мой файл sample.json выглядит следующим образом:

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

Я хочу заменить 4.4.4.4, но на частный IP-адрес экземпляра.Я попытался вставить туда $IP_ADDRESS, но, очевидно, это не сработало.

Я также попытался ввести это вручную, выполнив следующее:

IP_ADDRESS=$(curl http://169.254.169.254/latest/meta-data/local-ipv4)
aws route53 change-resource-record-sets --hosted-zone-id HKJA837HJS --change-batch {"Comment": "UPSERT a record", "Changes": [{"Action": "UPSERT", "ResourceRecordSet":{"Name":"test.mydomain.com","Type":"A","TTL":300,"ResourceRecords":[{"Value":"$IP_ADDRESS"}]}}]}

Когда я делаю это, я продолжаю получатьследующая ошибка:

Unknown options: Changes:, [{Action:, UPSERT,, ResourceRecordSet:Name:test.mydomain.com}]}, ResourceRecordSet:Type:A}]}, ResourceRecordSet:TTL:300}]}, ResourceRecordSet:ResourceRecords:[{Value:}]}]}, UPSERT a record,

Я пытался переформатировать это много раз, но всегда что-то не так.Как я могу убедиться, что IP-адрес экземпляра вставляется в этот набор записей каждый раз, когда запускается новый экземпляр?

1 Ответ

0 голосов
/ 10 октября 2018

Попытка передать JSON через командную строку очень трудно получить корректно из-за необходимости экранировать кавычки.

Вместо этого поместите свой json в файл.Выполните команду следующим образом:

sed "s/4.4.4.4/$NEWIP/g" update_rr.json
aws --profile PROD route53 change-resource-record-sets --hosted-zone-id ABCDEFGH012345 --change-batch file://update_rr.json
...