amazon-web-services - 在 AWS Codebuild 中处理多个环境变量的更好方法
问题描述
我有一个连接到我的 Github 账户的 AWS Codebuild 项目。在我的 github 中,每个环境都有单独的分支。
我目前总共有 4 个环境(通过这种关系,有 4 个 github 分支):dev、qa、customer1-poc、customer2-prod。
现在我在我的项目中使用了大量环境变量,最初我在环境>环境变量部分的 Codebuild 项目中设置这些环境变量。因此,理想情况下,每个 env 有 4 个 env var,它们使用 env 名称进行区分。
例如,如果有一个名为apiKey的环境变量,它会在 codebuild 中按名称保存 4 次
apiKey_dev
apiKey_qa
apiKey_customer1poc
apiKey_customer2prod
你明白了。对于其他需要在所有环境中有所不同的环境变量也是如此。
这些环境变量从 buildspec 文件中读取并传递给 serverless.yml 文件。
现在的问题是,当我不断创建新环境(如更多 poc、prod 环境)时,我需要继续为每个环境复制一组环境变量,并且变得乏味。
有什么方法可以将这些环境变量保存在 Codebuild 项目之外,然后可以在成功构建后传递给 Lambda 函数?
解决方案
CodeBuild 与 Parameter store 原生集成:
在参数存储中,您可以将变量保存为 json 名称,例如 /config/prod":
...然后在 CodeBuild 中检索它并通过 'jq' 2进行解析。这样,所有环境特定的变量都在一个地方。如果您采用这种方式,请确保使用 KMS 密钥加密 Param Store 变量(如果它包含机密)。另请检查 AWS Secrets Manager。
推荐阅读
- sql - 在 SQL 中计算百分位数
- laravel - laravel 应用程序不会出现在本地主机上
- python - 在数组值上查询数据框列
- vba - 复制并粘贴下一步,没有 vba 错误
- python - 检查两个 csv 文件的两列值,如果找到匹配,则写入另一个 csv 文件
- sql - 连接两个表并找到最早的日期 SQL
- apache-kafka - Kafka Streams:混合搭配 PAPI 和 DSL KTable 不共同分区
- javascript - Ajax 回调在函数调用后触发
- machine-learning - 在 tensorflow.js 中将预测值 Y 获取到一定数量的 X 值
- json - VueJs Axios Post FormData 参数