Я предполагаю, что "Имя хоста RDS" является вашей конечной точкой RDS?
Вы можете добавить свои пользовательские данные EC2, как показано ниже.Я не очень привык к Linux, поэтому не уверен, что это будет способ установить переменную среды, но вы поняли.
Resources:
Rds:
Type: 'AWS::RDS::DBInstance'
Properties:
...
Ec2:
Type: 'AWS::EC2::Instance'
Properties:
...
UserData: !Base64
'Fn::Sub':
- |-
<script>
export DB_CONNECTION="${RdsEndpoint}"
</script>
- { RdsEndpoint: !GetAtt Rds.Endpoint.Address }
Обновление
В этом конкретном случае вам необходимо использовать длинный синтаксис Fn::Sub
, так как для вашей ссылки необходимо использовать Fn::GetAtt
.Если требуемая информация была получена простым Fn::Ref
, вы можете использовать короткий синтаксис:
UserData: !Base64
'Fn::Sub':
<script>
export DB_CONNECTION="${Rds}" # <-- this will get the DBInstanceIdentifier
</script>
Обновление 2 : как указаноДжозефом, вы все равно можете использовать короткий синтаксис, независимо от того, является ли источник! Ref или! GetAtt.Так что это действительно:
UserData: !Base64
'Fn::Sub': |-
<script>
export DB_CONNECTION="${Rds.Endpoint.Address}"
</script>