微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS CloudFormation 嵌套堆栈 ChangeSet 失败并显示错误“不执行更新”当没有实际更改和使用 Transform 节时

如何解决AWS CloudFormation 嵌套堆栈 ChangeSet 失败并显示错误“不执行更新”当没有实际更改和使用 Transform 节时

在我看来,当在嵌套堆栈中使用 转换宏 时,嵌套堆栈的变更集 功能包含一个错误。 让我描述一下我遇到的情况。 想象一个非常简单的设置: 一个父 CloudFormation Stack 模板,它包含两个 'AWS::CloudFormation::Stack' 类型的资源,即两个嵌套的堆栈(嵌套堆栈的实际数量在这里无关紧要)。其中一个(或两者)包含一个 Transform 节(例如'AWS::Include')。 现在,我更改了父 Stack 模板,而无需对任何 AWS 资源进行任何实际修改,例如,我添加了一些额外的输出值。现在如果我跑

aws cloudformation create-change-set ... --include-nested-stacks ...

这会在父堆栈中创建一个状态为 Failed 的 ChangeSet,状态原因说

嵌套变更集 ...这里是 ChangeSet arn ... 未成功创建:目前处于失败状态。

页面上我可以看到嵌套堆栈的变更集已经创建(因为我使用了 --include-nested-stacks ),如果我打开相应的页面来检查嵌套堆栈ChangeSet 我可以看到它也处于 Failed 状态,状态原因

不执行任何更新。

如果我在嵌套堆栈中使用转换宏,那么 ChangeSet 将成功创建并成功执行(例如,通过添加我之前提到的附加输出值)。

那么,当没有对 AWS 资源进行实际修改时,转换宏是否会阻止嵌套的 ChangeSet 功能正确检测和处理 ChangeSet?我无法通过谷歌搜索找到任何具体信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。