我应该为 aws eb 使用不同的 Dockerrun.aws.json 文件还是通过 eb 控制台设置环境变量

我应该为 aws eb 使用不同的 Dockerrun.aws.json 文件还是通过 eb 控制台设置环境变量

假设我有几个 ElasticBeanstalk 环境:

  • production我的应用
  • stagingMyApp
  • qaMyApp

每个环境都有非常相似的 Dockerrun.aws.json(哪些卷应该链接到哪里)但不同的环境变量(例如 RDS db url 是什么、RDS 的密码是什么、mandril API 密钥是什么......)

我应该将每个环境的环境变量存储在自己的文件中(qa-Dockerrun.aws.json,prod-Dockerrun.aws.json,...)并告诉eb deploy使用该文件(如果是这样,我该怎么做?)

或者

我应该设置环境eb setenv POSTGRES_PASS=xyzsecretabc 文档不是将它们放入 Dockerrun.aws.json

欢迎提出其他建议

git我当然希望避免我的敏感信息被存储在

谢谢

答案1

经过一段时间后我决定采用这个解决方案:

两样都做 :)

很难跟踪 elastic beanstalk 中的所有环境变量(并且显然有一个限制数量,没有检查),并且将数据库密码提交到版本控制是愚蠢的。

将已经公开的内容(如DB_PORT_5432_TCP_ADDR(RDS 公共 DNS)、DB_ENV_POSTGRES_USERNAME(postgres 用户名)REDIS_PORT_6379_TCP_ADDRS3_BUCKET_NAME(资产存储桶))保留在Dockerrun.aws.json版本控制(git)中

DB_ENV_POSTGRES_PASSWORD像Elastic BeanstalkSECRET_KEY_BASE环境MANDRIL_API_TOKENAWS_SECRET_ACCESS_KEY

相关内容