Не уверен, как взять этот IP-адрес из самого ресурса и передать его в качестве пользовательских данных в конфигурации запуска.
В CFN это будет выглядеть примерно так:
Resources:
MyEIP:
Type: AWS::EC2::EIP
Properties: {}
MyLaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Properties:
UserData:
Fn::Base64: !Sub |
#!/bin/bash -xe
EIP_IP=${MyEIP}
echo ${!EIP_IP}
# use aws cli to attach EIP_IP to the instance
Роль экземпляра также потребуется с разрешениями для подключения EIP.
Из docs примерно !Ref
, который будет использоваться when EIP_IP=${MyEIP}
:
Когда вы передаете логический идентификатор этого ресурса в функцию intrinsi c Ref, Ref возвращает Elasti c IP-адрес .