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

如何在AWS CDK流水线的不同阶段之间添加bake time(等待验证时间)

AWS CDK流水线多阶段添加Bake Time实现方案

核心实现逻辑

通过在流水线的相邻业务阶段之间插入官方提供的等待动作/步骤实现自定义时长的验证等待,无需额外开发自定义组件。

分场景实现步骤

场景1:使用原生aws-codepipeline模块构建流水线

  • 首先导入依赖包(以TypeScript CDK为例,Python/Java等其他语言版本API逻辑一致)
import { WaitAction, WaitTime } from 'aws-cdk-lib/aws-codepipeline-actions';
import { Duration } from 'aws-cdk-lib';
  • 在需要添加bake time的两个阶段之间插入独立的等待阶段,示例为在gamma测试阶段和生产阶段之间添加2小时等待:
// 插入bake阶段
const bakeStage = pipeline.addStage({
  stageName: 'Bake-Gamma-To-Prod'
});

// 添加等待动作,自定义时长
bakeStage.addAction(new WaitAction({
  actionName: 'Bake-Verification-Wait',
  waitTime: WaitTime.duration(Duration.hours(2))
}));

等待时长支持自定义,最小单位为秒,最长可配置99天

场景2:使用CDK Pipelines高级封装(@aws-cdk/pipelines模块)

大部分无服务器应用开发者会使用该高级封装简化流水线配置,可直接通过WaitStep实现:

  • 导入依赖
import { WaitStep, CodePipeline } from 'aws-cdk-lib/pipelines';
import { Duration } from 'aws-cdk-lib';
  • 在阶段的后置步骤中添加等待,示例为beta到gamma加30分钟等待,gamma到生产加2小时等待:
const pipeline = new CodePipeline(this, 'ServerlessAppPipeline', {
  // 你的流水线基础配置(synth、源设置等)
});

// 添加beta测试阶段
const betaStage = pipeline.addStage(new BetaTestStage(this, 'Beta'));
// beta阶段完成后进入等待
betaStage.addPost(new WaitStep('Bake-Beta-To-Gamma', {
  time: Duration.minutes(30)
}));

// 添加gamma测试阶段
const gammaStage = pipeline.addStage(new GammaTestStage(this, 'Gamma'));
// gamma阶段完成后进入等待
gammaStage.addPost(new WaitStep('Bake-Gamma-To-Prod', {
  time: Duration.hours(2)
}));

// 最后添加生产阶段
pipeline.addStage(new ProdStage(this, 'Production'));

可选扩展配置

如果需要支持等待过程中发现问题随时终止流水线,可以在bake阶段并行添加手动拒绝动作:

实现逻辑:等待时长结束自动进入下一阶段,若验证期间发现问题可手动触发审批拒绝终止流程

import { ManualApprovalAction } from 'aws-cdk-lib/aws-codepipeline-actions';

const bakeStage = pipeline.addStage({
  stageName: 'Bake-Gamma-To-Prod'
});

// 等待动作和手动审批动作同优先级并行运行
bakeStage.addAction(new WaitAction({
  actionName: 'Wait-For-Bake',
  waitTime: WaitTime.duration(Duration.hours(2)),
  runOrder: 1
}));

bakeStage.addAction(new ManualApprovalAction({
  actionName: 'Stop-If-Bake-Failed',
  runOrder: 1
}));

内容的提问来源于stack exchange,提问作者Usama Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:45:09