Следуя AWS документам , вы должны включить их, используя тот же синтаксис, что и в CloudFormation. например, для YAML:
UserData:
Fn::Base64: !Sub |
Ref: MyValue
Ref: MyName
Hello World
Вы также можете использовать более похожий на bash синтаксис. Другой пример:
UserData:
Fn::Base64: !Sub |
ACCESS_KEY=${AccessKey}
SECRET_KEY=${SecretKey}
В вашем случае вам также необходимо передать заменяющую переменную для вашего атрибута CreateDB.Endpoint.Address
. Пример:
UserData:
Fn::Base64:
Fn::Sub:
- |
ACCESS_KEY=${AccessKey}
SECRET_KEY=${SecretKey}
echo "my db endpoint address ${MyDB}"
- MyDB: !GetAtt CreateDB.Endpoint.Address
Итак, в вашем случае это могло бы стать:
UserData:
Fn::Base64:
Fn::Sub:
- |
#!/bin/bash -x
sed -i 's/fs-086*****/\"${EFSCreateFS}/"' /etc/fstab
mount -a
rm -rf /var/www/html/wordpress/*
cp /var/tmp/wpress.tar /var/www/html/wordpress/
cd /var/www/html/wordpress/ && tar -xf wpress.tar
sed -i 's/wordpress.cl******.ap-southeast-1.rds.amazonaws.com/\"${DBEndpointAddress}\"/' /var/www/html/wordpress/wp-config.php
- DBEndpointAddress: !GetAtt CreateDB.Endpoint.Address
Вам также может помочь следующий ответ: Сценарий UserData с атрибутом ресурса CloudFormation