我一直在aws-cdk上看到不同的实现,并且我想知道是否存在首选约定。
单堆栈。如果所有资源都相关(例如Lambda和IAM角色应该在同一堆栈中,而不是在不同的堆栈中),这是有道理的。但是,这有200个资源限制的问题,一旦开始为每个表创建警报,就可能成为问题。
多个堆栈。这是有道理的,因为它很好地划分了应用程序(即,所有DDB位于一个堆栈中,所有IAM角色位于另一个堆栈中)。但是,当堆栈之间存在依赖性时,ChangeSets版本存在很多问题(我的Lambda堆栈取决于我的IAM堆栈,但是Lambda堆栈使用了IAM的旧ChangeSet,所以现在我无法更新自己的东西)。由于此方面的持续问题,我最终采用了单堆栈方法。
我想知道对此的看法;我本来希望能在这里找到一条经验法则,但到目前为止我还没有碰到过。
谢谢!
答案 0 :(得分:1)
CloudFormation堆栈旨在自动更新。也就是说,要么成功完成了对堆栈的所有更新,要么所有更新都被回滚。将基础结构组件分为堆栈时,我将以下检查清单作为经验法则:
如果以上任何一个答案是肯定的,我倾向于将资源提取到单独的堆栈中。