Lai*_*kus 6 amazon-web-services aws-cloudformation aws-cdk infrastructure-as-code nested-stack
我想这个问题在互联网上应该有很清楚的答案。但对于何时使用一种类型的堆栈以及何时使用另一种类型的堆栈,我没有找到足够的答案。
我可以仅使用常规堆栈完美地建模我的基础设施。此外,我可以仅使用嵌套堆栈和一个根常规堆栈来完美地建模我的基础设施。从项目角度来看 - 唯一的区别是堆栈类型名称。其他一切都一样。
例如,我正在使用 AWS CDK - 一个合成器,可以将 python 合成到 CloudFormation 模板。我可以使用 Stacks 做所有事情,并且可以简单地查找 Stack 并将其替换为 NestedStack。基础设施将被重新部署,但本质上没有任何改变。
小智 9
嵌套堆栈的最大“区别”是它们成为父堆栈的一部分。这意味着,如果部署失败,所有堆栈(父堆栈和嵌套堆栈)将作为一个整体回滚。与多个堆栈相比,您可以让第一个堆栈成功部署,第二个堆栈失败并回滚,第三个堆栈甚至不尝试部署。
嵌套堆栈就像代码中的函数,它捆绑可重用的代码并且可以对其进行参数化。
与 Python 编程一样,您可以定义一个方法,该方法提供您在整个应用程序或不同应用程序中使用的功能。当然,您可以在 python 代码中不使用任何方法,而只需在多个位置复制并粘贴相同的代码,它也可以正常工作。
就像 Python 中的函数一样,嵌套堆栈允许您减少各种模板之间的复制和粘贴量,因为您可以将常见模式捆绑到嵌套堆栈中。就像函数一样,嵌套堆栈可以参数化,因此您可以根据您的需求从单个嵌套堆栈创建资源。
为什么我要使用嵌套堆栈而不是常规堆栈?
避免跨多个堆栈复制和粘贴相同的功能。答案类似于“如果我可以在需要时将相同的代码复制并粘贴到任何地方,为什么我应该使用 python 中的函数?”。
| 归档时间: |
|
| 查看次数: |
2384 次 |
| 最近记录: |