我编写了一个由EC2实例和RDS数据库组成的cloudformation。我希望从RDS获取端点地址,我可以通过内部函数GetAtt,并将其传递到文本文件中的EC2实例。下面是我尝试过的代码,但它不起作用并给我我想要的东西。
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-74e6b80d
InstanceType: t2.nano
SecurityGroups:
- Ref: MySecurityGroup
KeyName:
- Ref: MyKeyPair
UserData:
Fn::Base64:
Fn::Sub:
- |
#!/bin/bash
touch /home/ubuntu/touch1.txt
- DatabaseAddress: !GetAtt MyDatabase.Endpoint.Address
echo "My address is ${DatabaseAddress}" >> touch1.txt
DependsOn: MyDatabase
答案 0 :(得分:0)
在GetAtt
函数中,您可以在不使用Sub
的情况下从资源中获取属性。
示例:
UserData:
Fn::Base64:
Fn::Sub:
- |
#!/bin/bash
touch /home/ubuntu/touch1.txt
echo "My address is ${MyDatabase.Endpoint.Address}" >> touch1.txt