将参数从 AWS lambda 传递到 AWS CodePipeline

Pass parameters from AWS lambda to AWS CodePipeline

我有一个通过 AWS SDK startPipelineExecution 函数启动 CodePipeline 执行的 lambda。是否有任何机制可用于将参数传递给 CodePipeline 构建,以便它可以将 CodeBuild 构建中的值用作环境变量?

目前 CodePipeline 不提供任何将参数传递到 Source Stage 的功能。根据 CodePipeline 设置,我会查看以下内容之一:

  1. 从您的 Lambda 函数,将参数保存到 Amazon Systems Manager - Parameter Store 并使用 CodeBuilds 内置方法在运行时检索它。构建规范:
    env:
      parameter-store:
        key: "value"
  1. 不要直接调用 CodePipeline,而是将包含所有参数的文件上传到 S3 存储桶。然后将 S3 设置为 Source Action Provider,这样当文件更新时就会触发 CodePipeline。这样您就可以将文件作为工件传递给您的 CodeBuild 项目并在那里使用它。
  2. 如果您可以重新设计流程以直接从 Lambda 触发 CodeBuild,则可以使用 environment-variables-override 标志调用 startBuild。