gpt4 book ai didi

amazon-web-services - 如何将 RDS 实例的主机名放入 EC2 中的环境变量中?

转载 作者:行者123 更新时间:2023-12-05 03:04:27 26 4
gpt4 key购买 nike

我有一个 CloudFormation 模板,可以在同一堆栈下创建 RDS 和 EC2。我的问题是,如何将 RDS 主机名添加到 EC2 内的环境变量之一中,而无需安装 AWS cli 并添加凭证?

最佳答案

我假设“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:正如 Josef 所指出的,您仍然可以使用短语法,无论源是 !Ref 还是 !GetAtt。所以这是有效的:

  UserData: !Base64 
'Fn::Sub': |-
<script>
export DB_CONNECTION="${Rds.Endpoint.Address}"
</script>

关于amazon-web-services - 如何将 RDS 实例的主机名放入 EC2 中的环境变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52978197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com