我编写了Cloudformation模板,在主堆栈中有几个嵌套堆栈。主堆栈具有几个嵌套堆栈,这些堆栈创建Codepipeline来从Github存储库部署Lambda SAM模板。还有一个嵌套堆栈,该堆栈创建了Step Function状态机,并且该状态机需要在先前的嵌套堆栈中创建的Lambda的ARN引用。
由于Lambda是作为SAM模板部署的一部分创建的,因此我无法将DependsOn功能用于Step Function嵌套堆栈,以等待创建Lambda。然后,我意识到可以将WaitCondition用作Step Function嵌套堆栈的DependsOn条件的一部分。我创建了一个Lambda,并将其添加为Codepipeline阶段的一部分,以在Lambda SAM模板的部署完成后触发WaitHandle条件。
一切都很好地适合于初始部署,因为我能够将所有必需的资源部署为一个堆栈。但是,当CF堆栈有后续更新时。我收到错误消息:不支持对资源类型AWS :: CloudFormation :: WaitCondition的更新。
我的问题是,如果WaitCondition仅适用于初始设置,并且随后对堆栈的更新会导致失败?参考:https://forums.aws.amazon.com/thread.jspa?threadID=151394
我认为在初始部署后删除WaitCondition相当麻烦,因为能够将相同的脚本重用于初始部署和更新会更好吗?
有什么想法吗?(可能不建议使用CDK或Terraform。)谢谢。