gpt4 book ai didi

bash - 用于在 EC2 的配置文件中写入 RDS 端点的 CloudFormation UserData 模板

转载 作者:行者123 更新时间:2023-12-03 07:46:57 25 4
gpt4 key购买 nike

我被 CloudFormation 脚本的一部分所困扰:我有一个带有 Docker lamp 的 EC2 和使用 Docker-compose 文件定义的 Wordpress,以及 VPC 中的一个单独的 RDS 数据库。

每次创建堆栈时,RDS 端点都会发生变化。我需要在 docker compose 文件中写入新端点以允许通信。我编写了一个 bash 脚本来通过替换 WORDPRESS_DB_HOST 行来更改此信息,这没问题,但我无法正确传递端点,我认为这是一个语法问题,我无法找到解决方案。

UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
sed -i 's/WORDPRESS_DB_HOST.*/WORDPRESS_DB_HOST: {Fn::GetAtt: ["MasterDB", "Endpoint.Address"]}:3306 /' /home/ubuntu/lampconfig/docker-compose.yml
docker-compose up -d

最佳答案

参见this question关于如何在 Sub 中使用 Fn:GetAtt。您需要使用短语法:

UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
sed -i 's/WORDPRESS_DB_HOST.*/WORDPRESS_DB_HOST: ${MasterDB.Endpoint.Address}:3306 /' /home/ubuntu/lampconfig/docker-compose.yml
docker-compose up -d

关于bash - 用于在 EC2 的配置文件中写入 RDS 端点的 CloudFormation UserData 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69862635/

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