我在这里遇到了一些挑战。因此,我非常广泛地使用AWS管道在一个环境中进行部署和维护50个不同的部署。我使用不同的管道在多个帐户/区域中复制事情。但是,我需要开始在部署中添加一些条件语句,以便根据环境就绪情况部署/不部署管道中的某个阶段(比如引导/安装相对于长期运行)。
因此,我试图在我的管道中找到一种方法,将cfnCondition语句添加到一个阶段定义中,在环境准备好之前不要将这个阶段添加到管道中。我有一个舞台/脚本,它做了大量的基础设施设置,所以不希望阶段在完成之前运行。找到本文(https://loige.co/create-resources-conditionally-with-cdk/#using-cfncondition-with-cdk),但1.找不到一个阶段的0级构造,而2.在cfnOptions上的cdk v2 /cfnOptions错误中似乎不喜欢这样。
任何人都有此选项,因此我可以从我的阶段定义中的SSM / make条件语句(顺便说一句,如果我在项目/静态本地文件中这样做,它可以正常工作,需要从ssm /参数存储中获得,这样我就可以在设置完成后释放其他管道)。
谢谢尼克
发布于 2022-06-07 10:03:40
要做到这一点很简单。您可以通过指定CodeBuild环境(完成synth的位置)将SSM参数传递给整个管道。这里,您可以查看文档。在管道本身中,可以引用这个变量,如下所示:
if(process.env.MY_SSM_VAR==='myFancyInput'){
pipeline.addMyConditionalStage()
}发布于 2022-06-07 14:28:04
如前所述:参数库对此非常有用--对于每个管道中的任何概念,但是值都会更改(即,Lambda的名称或此api的端点)--这是非常有用的。
但是,请注意,如果X然后Y类交易,管道是不能做的-它总是将是“步骤1,步骤2,步骤3.”ect等-永远不要“步骤1,如果A,步骤2,步骤2.5”
如果您有非常有条件的、依赖于其他操作的内容,最好的选择是创建一个Step函数来处理所有这些事情,并将其称为管道的一部分。
https://stackoverflow.com/questions/72525177
复制相似问题