将参数从 AWS lambda 传递到 AWS CodePipeline

iss*_*ure 4 aws-lambda aws-codepipeline aws-codebuild

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

ber*_*ums 6

更新: startPipelineExecution操作现在接受变量列表来覆盖新执行的管道变量。


原始答案: 目前CodePipeline不提供任何将参数传递到Source Stage的功能。根据 CodePipeline 设置,我将研究以下内容之一:

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