You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CDK V2(TypeScript):如何在CodePipeline部署阶段中添加Action Group

在AWS CDK V2中为CodePipeline Stage添加顺序执行的Action Group

好问题!你想要的在同一Stage内按顺序执行多组动作的需求,完全可以通过CDK V2的actionGroups属性实现,这正是对应AWS控制台里的“添加动作组”功能——每组动作内部并发执行,组与组之间按顺序依次运行,完美替代拆分多个Stage的方案。

核心实现思路

CDK V2的StageProps提供了actionGroups属性(替代原来的actions),它是一个ActionGroup对象数组:

  • 数组中的每个元素对应一个Action Group,组内的actions会并发执行
  • 不同的Action Group会严格按照数组的顺序依次执行,前一组完成后才会启动下一组
  • 你可以为每个Group设置name,在AWS控制台里会显示这个组名,方便识别

修改你的代码示例

下面是针对你现有代码的修改版本,把原来的并发动作拆分为两个顺序执行的Action Group:

let stagesToDeployInOrder = [] 
// Deploy infrastructure for each stage
StageConfigurations.ACTIVE_STAGES.forEach((stage: Stage) => { 
  const stageToDeploy: StageProps = { 
    stageName: `${stage.stageType}`, 
    transitionToEnabled: true, 
    // 使用actionGroups替代actions,实现组间顺序执行
    actionGroups: [
      {
        name: "Infrastructure Deployment", // 自定义组名,控制台会显示
        actions: codeDeploymentManager.getDeploymentActionsForStage(stage.stageType),
      },
      {
        name: "Additional Stage Actions",
        actions: stage.stageDeploymentActions,
      },
      // 如果有更多组,继续在这里添加即可
    ],
    // 注意:不要同时设置actions属性,二选一
  } 
  stagesToDeployInOrder.push(stageToDeploy); 
}); 
// Define Pipeline itself. Stages are in order of deployment. 
new Pipeline(this, `Code-pipeline`, { 
  pipelineName: `ProjectNamePipeline`, 
  crossAccountKeys: false, 
  stages: stagesToDeployInOrder 
});

关键注意事项

  • actionGroups和actions是互斥的:在同一个Stage中,你只能使用其中一个属性,不能同时设置
  • 每个Action Group的name是可选的,但建议设置,方便在控制台中区分不同的组
  • 如果需要调整组的执行顺序,只需要修改actionGroups数组的元素顺序即可

这样配置后,在AWS控制台的管道编辑页面中,你会看到同一个Stage下有两个独立的动作组,它们会按你定义的顺序依次执行,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Oliver Wheatley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 13:52:27