对于我的CodeBuild项目,我有一个开发、分期和生产项目。每个项目都有一个名为$BUILD_ENVIRONMENT的环境变量,分别设置为dev、暂存和产。在中,每个阶段都有自己的键/值对。我希望在所有分支中使用一个buildspec.yml,所以如果我试图合并一个分支或签出一个新分支,它就不会在buildspec.yml中复制硬编码的值。这就是我想做的:
version: 0.2
env:
parameter-store:
SECRET_KEY_BASE: /myproject/$BUILD_ENVIRONMENT/secret_key_base
但不起作用。没有进行插值,我得到以下错误:
解密变量错误消息:参数不存在: /myproject/$BUILD_ENVIRONMENT/secret_base_key
由于这是一个如此常见的用例,我想知道是否有人找到了这种解决方案的任何类型?
发布于 2020-06-19 09:54:19
在不同的部署环境中使用不同的SSH密钥对时,我遇到了相同的问题。通常,我会在每个环境中创建不同的ssm变量,然后在buildspec.yml中更改每个git分支的ssm名称。对我来说效果很好。例如,为了部署到舞台环境,我使用了git分支"dev“,它遵循buidlspec.yml配置
env:
parameter-store:
SECRET_KEY_BASE: "DEV_SECRET_KEY_BASE"
对于“释放”环境来说,
env:
parameter-store:
SECRET_KEY_BASE: "RELEASE_SECRET_KEY_BASE"
在应用之前,请确保解决了git分支之间的合并冲突。
https://devops.stackexchange.com/questions/10263
复制相似问题