AWS CodePipeline:同时运行多个管道

时间:2019-04-26 15:12:56

标签: amazon-web-services amazon-s3 aws-codepipeline aws-codebuild

我正在尝试使用 Bitbucket,CodeBuild和CodePipeline设置我的CI / CD进程。到目前为止,我在Bitbucket上拥有Webhook,它将在来自ECR的自定义docker映像上运行CodeBuild,并将工件上传到已启用版本的Amazon S3存储桶。新上传将基于Cloudwatch事件触发CodePipeline,并在“手动”批准后运行另一个CodeBuild,这将部署到新的S3存储桶上,到目前为止,还不错。 CodePipeline有3个阶段:源(s3),-> 手动批准-> CodeBuild

问题是:当我尝试推送多个分支/新提交时,第一个CodeBuild运行并按预期在不同版本的S3上上传工件。但是,每次上传应触发每个CodePipline。如果我对Bitbucket存储库进行了3次不同的代码推送,则应该有3条管道等待部署手动批准。 但是事实并非如此。

根据提交,我在S3中上传了三个带有不同VersionID的工件:

第一次提交的工件VersionID: OKIBabVQQX80aAuARAne8jnClsTpJGXu

第二次提交的工件VersionID: YNsgp9rodnAx7du1Te1OQD2UO0t5IZc

第三次提交的工件VersionID: VN7pwVS5zpYNTmzJrLbFGKBupogpgtHN

在CodePipeline中:

阶段:手动批准正在等待具有S3来源版本的批准: OKIBabVQQX80aAuARAne8jnClsTpJGXu

阶段:是由S3触发的,版本ID为: VN7pwVS5zpYNTmzJrLbFGKBupogpgtHN

在这里,我完全错过了第二个工件:(s3 VersionID: YNsgp9rodnAx7du1Te1OQD2UO0t5IZc ) 我希望所有这三个工件都可以一个接一个地触发CodePiple,以便我可以部署所有3个推送。

非常感谢!

1 个答案:

答案 0 :(得分:1)

  

管道执行开始时,它将对管道中的每个阶段和操作进行修订。 Start a Pipeline Execution in CodePipeline

代码管线阶段显示特定阶段的最后一个触发器。 就您而言,您有:

  • Artifact1触发了源和手动批准。
  • Artifact2触发了源并等待触发手动批准。
  • Artifact3触发了源并等待触发手动批准。

由于您的Artifact3紧随Artifact2之后-Source阶段显示了它(最后一个触发器)。 Artifact2未显示,但仍在等待其转向。在人工批准阶段完成对Artifact1的操作后,人工批准将出现Artifact2。 之后,Artifact3将进入“手动批准”阶段,依此类推。