Я знаю, что с помощью Условия возможно условно (что еще?) Создавать ресурсы.
Я пытаюсь найти способ, хотя условно создать свойства ресурсов;
в моем случае я создаю несколько EC2
экземпляров в подсети с общедоступным назначением ip по умолчанию = false
.
Иногда, хотя для целей отладки я хочу, чтобы мои экземпляры получали публичные IP-адреса.
Теперь я должен прокомментировать вход / выход SG / Subnet и NetworkInterfaces
свойства ниже (они не идут вместе)
myEC2:
Type: AWS::EC2::Instance
Metadata:
Comment: My EC2 Instance
AWS::CloudFormation::Init:
config:
commands:
01_provision:
command:
!Sub |
sed -i "s/somestring/${somevar}/" /some/path/
CreationPolicy:
ResourceSignal:
Timeout: PT4M
Properties:
ImageId: !FindInMap [ MyAamiMap, 'myami', amiid ]
InstanceType: "t2.2xlarge"
# SubnetId: !Ref SBNDemo1
# SecurityGroupIds: [!Ref SGInternalDemo]
NetworkInterfaces:
- AssociatePublicIpAddress: "true"
DeviceIndex: "0"
GroupSet:
- Ref: "SGInternalDemo"
SubnetId:
Ref: "SBNDemo1"
UserData:
"Fn::Base64":
!Sub |
#!/bin/bash -xe
# Start cfn-init
/usr/local/bin/cfn-init -s ${AWS::StackId} -r myEC2 --region ${AWS::Region} || echo 'Failed to run cfn-init'
# All done so signal success
/usr/local/bin/cfn-signal -e $? --stack ${AWS::StackId} --resource myEC2 --region ${AWS::Region}
Есть предложения?