Можно ли установить запись ресурса Route53 в качестве IP-адреса экземпляра EC2 в том же сценарии облачной информации? - PullRequest
0 голосов
/ 29 мая 2019

У меня есть сценарий облачной информации, который создает экземпляр EC2 и настраивает некоторые аварийные сигналы. Я хотел бы добавить запись Route53 для этого экземпляра в той же облачной информации, но у меня возникли проблемы с выяснением того, что поместить в поле «Запись ресурса». Есть ли способ сослаться на вновь созданный IP-адрес экземпляра EC2 для поля ResourceRecord в AWS :: Route53 :: RecordSetGroup?

Я уже пытался использовать "ResourceRecords":"EC2Instance", но я получил сообщение «Обнаружен неподдерживаемый тип свойства». Я не знаю, как это сделать, кроме ручной настройки записи DNS после создания, но я хотел бы сделать это за один шаг, чтобы это делалось автоматически.

Вот что у меня есть:

"Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {"ImageId": {
          "Ref": "AMI"
        },
        "IamInstanceProfile": {
          "Ref": "InstanceProfile"
        },
        "InstanceType": {
          "Ref": "InstanceSize"
        },
        "BlockDeviceMappings": [{
            "DeviceName": "/dev/xvda",
            "Ebs": {
              "Encrypted": true,
              "VolumeSize": 100,
              "DeleteOnTermination": false
            }
          }]
      }
    },
    "DNS": {
      "Type": "AWS::Route53::RecordSetGroup",
      "Properties": {
        "HostedZoneName": {"Ref": "HostedZoneName"},
        "Comment": "Alias Record",
        "ResourceRecords":"EC2Instance",
        "Type": "A",
        "Name": {"Fn::Join" : ["",[{"Ref": "ComponentDNSName"},{"Ref": "HostedZoneName"}]]}
      }
    }
  },

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

1 Ответ

0 голосов
/ 30 мая 2019

С AWS :: EC2 :: Instance - AWS CloudFormation :

Fn::GetAtt

Встроенная функция Fn::GetAtt возвращает значение дляуказанный атрибут этого типа.Ниже перечислены доступные атрибуты и примеры возвращаемых значений.

PrivateIp

Частный IP-адрес указанного экземпляра.Например: 10.24.34.0.

Итак, это будет что-то вроде:

{ "Fn::GetAtt" : [ "EC2Instance", "PrivateIp" ] }
...