调试 cloudformation 脚本的任何有效方法?

Any efficient way to debug a cloudformation script?

我想找到一种调试 cloudformation 脚本的方法。

我写了一些 bash-脚本,可以通过 SSH 手动执行。

当通过云形成执行时,它确实失败了。 然后是一些固有的cloudformation函数,无法通过bash执行,这使得它们很难调试。

整个剧本需要30分钟。所以当我认为我完成了 - 我重新启动脚本并在 30 分钟后发现另一个错误。

有没有办法减少这个周期?
有没有办法执行命令,cloudformation将如何执行?

我发现调试 CloudFormation 脚本的最有效方法是采用失败的模板,删除所有部署失败的资源以及依赖它们的资源,然后创建 CloudFormation堆。这样做的好处是,这样一来,失败元素依赖的所有资源都可以提前创建,然后你可以更新堆栈,调试一个元素,直到它创建。如果失败,它会将更新回滚到工作状态,这比重新创建整个堆栈要快得多。

当堆栈因权限而失败时,请密切关注事件堆栈,因为如果您遵循最低权限,这也很常见。好消息是,CloudFormation 通常很擅长告诉您特定 User/Role/etc 没有权限对特定资源执行特定操作。