【发布时间】:2014-02-11 02:10:45
【问题描述】:
使用 Elastic Beanstalk .config 文件有点……有趣。我正在尝试在 Elastc Beanstalk .config 文件中使用带有 files: 配置选项的环境属性。我想做的是:
files:
"/etc/passwd-s3fs" :
mode: "000640"
owner: root
group: root
content: |
${AWS_ACCESS_KEY_ID}:${AWS_SECRET_KEY}
要创建一个 /etc/passwd-s3fs 文件,其内容类似于:
ABAC73E92DEEWEDS3FG4E:aiDSuhr8eg4fHHGEMes44zdkIJD0wkmd
即使用 AWS 控制台 (Elastic Beanstalk/Configuration/Software Configuration/Environment Properties) 中定义的环境属性来初始化系统配置文件等。
我发现container-command:s 中可以使用环境属性,像这样:
container_commands:
000-create-file:
command: echo ${AWS_ACCESS_KEY_ID}:${AWS_SECRET_KEY} > /etc/passwd-s3fs
但是,这样做需要我手动设置所有者、组、文件权限等。与Files: 配置选项相比,处理更大的配置文件时也更麻烦...
有人对此有什么建议吗?
【问题讨论】:
-
你有没有想过这个问题?下面的答案很有帮助,但不确定他们是否回答了能够将环境变量用于文件副本的问题。据我所知,环境变量仅适用于 container_commands,
-
很遗憾没有。以下建议为解决方法提供了很好的选择,但这似乎仍然是 EB .config 文件的潜在改进领域...
-
我最终使用了 PowerShell 脚本。在 commands_container 中,我执行一个 PS 脚本,然后根据环境变量从 S3 下载文件。假设它可以与 S3 以外的其他文件一起使用。
标签: configuration amazon-web-services environment-variables amazon-elastic-beanstalk