CDK Pipeline部署完成后触发Step Function的实现方案咨询
CDK Pipeline触发Step Function方案选型解答
一、直接从CDK Pipeline触发Step Function是否合理
这个方案完全合理,是绝大多数场景下的首选实现:
- CDK Pipeline本质是官方封装的标准化CodePipeline,原生支持在部署阶段结束后追加自定义动作,你原本计划的调用
aws-codepipeline模块的addAction方法,配合codepipeline-actions库中的StepFunctionInvokeAction即可直接完成集成,没有额外的兼容问题 - 该方案优势非常明显:链路短、排障成本低,部署和后续Step Function的执行日志可以在同一个流水线页面中统一查看,权限配置也更收敛,只需要给CDK Pipeline的服务角色授予对应Step Function的执行权限即可
- 只要你要执行的Step Function是和本次部署强绑定的后置操作(比如部署后的初始化配置、流程验证、数据同步等),且不需要给其他部署流程复用,优先选该方案即可
二、是否推荐搭建独立CodePipeline通过EventBridge触发执行
该方案属于场景化的可选方案,不会作为通用优先推荐,你可以对照自身需求判断是否需要使用:
- 只有满足以下任一需求时,才建议选用该方案:
- 待执行的Step Function需要被多个CDK Pipeline、或其他AWS服务触发,需要统一的执行入口、权限管控、告警策略
- Step Function的执行和当前部署需要解耦,比如需要等待部署完成后的灰度流量验证、外部依赖项就绪后再触发,或者需要给Step Function的执行配置独立的重试、回滚、审批逻辑
- 有合规或权限隔离要求,部署流水线和业务操作流水线需要分属不同团队管控,权限不能互通
- 该方案的劣势是会额外增加资源维护成本,调用链路更长,排查问题需要跨CDK Pipeline、EventBridge、独立CodePipeline三个服务核对日志
- 如果你没有上述特殊需求,完全不需要额外搭建独立流水线,直接在原有CDK Pipeline中追加动作即可
内容的提问来源于stack exchange,提问作者Korgen
相关产品推荐
相关产品推荐

