我的 CodeBuild 中有一个 buildspec.yml 文件,我想从 EC2 Systems Manager Parameter Store 中读取值。CodeBuild 支持通过parameter-store
规范文件中的属性执行此操作。
问题是,我不知道如何使用在执行 buidlspec 之前设置的环境变量。
这是一个例子:
version: 0.2
env:
variables:
RUNTIME: "nodejs8.10"
#parameter-store vars are in the format /[stage]/[repo]/[branch]/[eyecatcher]/key
parameter-store: #see https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax
LAMBDA_EXECUTION_ROLE_ARN: "/${STAGE}/deep-link/${BRANCH}/GetUri/lambdaExecutionRoleArn"
ENV_SAMPLE_KEY: "/${STAGE}/deep-link/${BRANCH}/GetUri/key1"
phases:
install:
commands:
...
如您所见,我正在使用 AWS 最佳实践来命名 EC2 Systems Manager Parameter Store 键。我想在我的所有阶段重复使用这个构建规范,所以硬编码不是一种选择。我在Value
字符串中使用的变量EnvironmentVariables
在我的 CodeBuild 项目中填充 - 因此它们在规范运行之前可用。
如何使用非硬编码的内容动态填充Value
参数存储?Keys