如何通过 Elasticbeanstalk 配置文件(使用 Docker)访问环境变量?
Posted
技术标签:
【中文标题】如何通过 Elasticbeanstalk 配置文件(使用 Docker)访问环境变量?【英文标题】:How do you get access to environment variables via Elasticbeanstalk configuration files (using Docker)? 【发布时间】:2014-12-31 17:27:49 【问题描述】:例如,如果我想挂载一个由环境变量定义的特定卷。
【问题讨论】:
【参考方案1】:我最终使用了以下代码:
---
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/02my_setup.sh":
owner: root
group: root
mode: "000755"
content: |
#!/bin/bash
set -e
. /opt/elasticbeanstalk/hooks/common.sh
EB_CONFIG_APP_CURRENT=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
EB_SUPPORT_FILES_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_files_dir)
# load env vars
eval $($EB_SUPPORT_FILES_DIR/generate_env | sed 's/$/;/')
【讨论】:
【参考方案2】:您可以在 bash 脚本中使用 /opt/elasticbeanstalk/bin/get-config environment
例子:
# .ebextensions/efs_mount.config
commands:
01_mount:
command: "/tmp/mount-efs.sh"
files:
"/tmp/mount-efs.sh":
mode: "000755"
content : |
#!/bin/bash
EFS_REGION=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_REGION')
EFS_MOUNT_DIR=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_MOUNT_DIR')
EFS_VOLUME_ID=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_VOLUME_ID')
【讨论】:
以上是关于如何通过 Elasticbeanstalk 配置文件(使用 Docker)访问环境变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用单个 cloudformation 模板创建多个 Elasticbeanstalk 环境
如何在 ElasticBeanstalk 上安装和配置 Redis
如何覆盖我的 ElasticBeanstalk 应用程序的负载均衡器和容量等配置
如何在 AWS elasticbeanstalk 中配置 sonarqube 7.1