是否可以在 CodePipeline 中订购源操作?
Is it possible to order Source actions in CodePipeline?
我的 CodePipeline、ECR 和 S3 中有两个不同的源。我的部署管道将 zip 上传到 S3,然后将图像上传到 ECR。
我需要 CodePipeline 仅检测最后发生的 ECR 提交,然后触发 S3 源操作。然而,无论哪个先被检测到,都会启动 CodePipeline,这会导致新版本图像尚未上传的竞争条件。
我该如何解决这个问题?根据 CodePipeline 限制,我无法将 S3 移出源阶段。我已尝试将此 S3 下载移动到 Lambda 函数,但我似乎无法将 zip 作为输出工件传回 CodePipeline。
作为 CodePipeline 的触发器到 运行,只为 ECR 定义 CloudWatch 事件触发器,而不是为 S3 更改。禁用管道 built-in trigger/pull.
https://docs.aws.amazon.com/codepipeline/latest/userguide/create-cwe-ecr-source-console.html
这将确保只有 ECR 触发管道执行。
如果预期的方式是让 ECR 提交与上传到您的 S3 的任何内容一起处理,并假设它是完全相同对象名称的新版本,您可以将该数据放入管道的构建阶段,像您尝试使用 Lambda 函数一样拉取最新版本;或者有一些替代方法来识别新的 S3 对象。
如果您将 zip 内容上传到 S3,然后然后 提交 ECR 推送,您绝对可以将 S3 存储桶移出源阶段并使其稍微独立就管道和触发器而言。这将是您构建项目中适当阶段的另一个步骤。
我的 CodePipeline、ECR 和 S3 中有两个不同的源。我的部署管道将 zip 上传到 S3,然后将图像上传到 ECR。
我需要 CodePipeline 仅检测最后发生的 ECR 提交,然后触发 S3 源操作。然而,无论哪个先被检测到,都会启动 CodePipeline,这会导致新版本图像尚未上传的竞争条件。
我该如何解决这个问题?根据 CodePipeline 限制,我无法将 S3 移出源阶段。我已尝试将此 S3 下载移动到 Lambda 函数,但我似乎无法将 zip 作为输出工件传回 CodePipeline。
作为 CodePipeline 的触发器到 运行,只为 ECR 定义 CloudWatch 事件触发器,而不是为 S3 更改。禁用管道 built-in trigger/pull.
https://docs.aws.amazon.com/codepipeline/latest/userguide/create-cwe-ecr-source-console.html 这将确保只有 ECR 触发管道执行。
如果预期的方式是让 ECR 提交与上传到您的 S3 的任何内容一起处理,并假设它是完全相同对象名称的新版本,您可以将该数据放入管道的构建阶段,像您尝试使用 Lambda 函数一样拉取最新版本;或者有一些替代方法来识别新的 S3 对象。
如果您将 zip 内容上传到 S3,然后然后 提交 ECR 推送,您绝对可以将 S3 存储桶移出源阶段并使其稍微独立就管道和触发器而言。这将是您构建项目中适当阶段的另一个步骤。