AWS将大量的ENV变量传递到代码构建中

问题描述

当前,我们包含5个容器的单例应用程序通过AWS pipeline进入code build,然后将代码部署到ECS服务中。在基于代码构建$Stage中设置的ENV的代码构建期间,它可以为dev,prod or staging并加载一个特定的配置文件,该文件包含每个容器所需的所有ENV变量。见下文:

build:
commands:
  #Get commit id
  - "echo STAGE $STAGE"
  - "export STAGE=$STAGE"
  #Assigning AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY needs to be done in two steps,otherwise it ends up in "Partial credentials found in env" error
  - "export ANSIBLE_VARS=\"\
        USE_EXISTING_VPC=true \
        disABLE_BASIC_AUTH=true\""
  - "export DOCKER_ARGS=\"-e COMMIT_ID=$GIT_COMMIT -e APP_ENV=$STAGE 

问题1 :这些配置文件是否在存储库中,任何人都可以对其进行修改。因此,存在很多人为错误,例如生产重定向Url指向错误的位置,或者未设置新的ENV。

因此,我想远离加载不同的配置文件,并将ENV变量移至AWS进行处理。类似于在代码构建过程中,它将从parameter store加载。这是正确的方法吗?

问题2 是否有很多ENV变量,是在CloudFormation模板中逐个列出它们的唯一选择吗?还有其他更好的方法可以从上述构建命令将所有ENV变量加载到DOCKER_ARG中吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)