У меня есть следующие пользовательские данные EC2:
UserData: !Base64
Fn::Sub: |
#PROVISIONER_PEER_PASSWORD_INPUT=${AWS::AccountId} ${AWS::StackId} ${AWS::Region}
#PROVISIONER_PEER_PASSWORD=${pDatabasePassword}
#PROVISIONER_SHARED_UNIQUE_ID_INPUT=${AWS::AccountId} ${AWS::StackId} ${AWS::Region}
#PROVISIONER_CFN_RESOURCE=Machine
#PROVISIONER_CFN_STACK=${AWS::StackName}
#PROVISIONER_CFN_REGION=${AWS::Region}
#PROVISIONER_DATA_DISK=/dev/xvdc
#PROVISIONER_TIER=frontend
#PROVISIONER_PEER_ADDRESS=
Fn::GetAtt:
- rDatabaseCluster
- Endpoint.Address
#PROVISIONER_APP_PASSWORD=${pApplicationPassword}
Точка, где код данных пользователя нарушается, находится здесь.
#PROVISIONER_PEER_ADDRESS=
Fn::GetAtt:
- rDatabaseCluster
- Endpoint.Address
Fn :: GetAtt не выполняется / не разрешается. Результат кода пользовательских данных после того, как стек успешно создан, выглядит следующим образом:
#PROVISIONER_PEER_PASSWORD_INPUT=11111333393 arn:aws:cloudformation:us-east-1:171602812093:stack/daxz/16085e70-5b2b-11ea-91e9-122e54527a47 us-east-1
#PROVISIONER_PEER_PASSWORD=Jane85
#PROVISIONER_SHARED_UNIQUE_ID_INPUT=11111333393 arn:aws:cloudformation:us-east-1:171602812093:stack/daxz/16085e70-5b2b-11ea-91e9-122e54527a47 us-east-1
#PROVISIONER_CFN_RESOURCE=Machine
#PROVISIONER_CFN_STACK=daxz
#PROVISIONER_CFN_REGION=us-east-1
#PROVISIONER_DATA_DISK=/dev/xvdc
#PROVISIONER_TIER=frontend
#PROVISIONER_PEER_ADDRESS=
Fn::GetAtt:
- rDatabaseCluster
- Endpoint.Address
#PROVISIONER_APP_PASSWORD=Jane85
Как вы можете видеть, код для Fn::GetAtt
вошел в пользовательские данные без изменений до фактического значения. .
#PROVISIONER_PEER_ADDRESS=
Fn::GetAtt:
- rDatabaseCluster
- Endpoint.Address
Как мне заставить Fn::GetAtt
работать под Fn::Sub
? Или каков наилучший способ получить правильное значение ???