在决定编写一个大CF模板或嵌套许多较小的模板时,人们会考虑哪些因素?我想到的用例是基于RDS的,在这里,我需要定义RDS实例、VPC安全组、参数组和选项组,以及执行一些定制的lambda资源。
我的直觉是,这应该是分开,也许按资源类型,但我想知道是否有普遍接受的做法在这方面。
发布于 2019-03-11 16:33:18
我目前的经验法则是通过部署单元来分割资源--一起部署什么,一起部署什么。
我希望拥有最小的可部署堆栈,因为如果存在问题,部署或失败都是快速的。我不虔诚地遵守这条规则。例如,我经常将Lambda分组(甚至是不相关的,取决于项目的大小),因为它们只在代码/config更改时更新,而且我倾向于在只有一个Lambda更改的地方推动小的更新。
我还经常在其他堆栈中使用一堆共享资源(Fn::Import-ed),比如KMS键、共享S3桶等等。
请注意,我为每个堆栈设置了一个CD进程,这就是规则。
发布于 2019-03-12 11:04:46
我目前的设置需要部署一个VPC (带有端点)、RDS和应用程序(API网关、Lambdas)。我已经把它们分解成
因此,总的来说,我基本上遵循了“米兰·塞马克”的描述。但在我的示例中,这些部署是在需要时完成的(而不是CD的一部分),因此导出的参数存储在AWS Systems Manager的参数存储中。
https://stackoverflow.com/questions/55104957
复制相似问题