首页 > 解决方案 > 将当前资源迁移到可重用的嵌套堆栈中

问题描述

我在每个微服务中都有一个整体式 cloudformation 堆栈,创建相同类型的资源,我想通过将其分解为嵌套堆栈并在每个服务中重用它们来使其模块化。我对嵌套堆栈的理解是,您可以将它们用作可重用单元来创建捆绑资源。我知道通过将删除策略设置为保留并导入另一个堆栈来导入现有资源。我无法理解如何使用嵌套堆栈中的现有资源并使其可重用。如果我在嵌套堆栈中有导入逻辑,那么它不能被重用吗?

例如,假设您在每个堆栈中创建了一个 EC2 实例以及 cloudwatch 警报。我想通过将所有相关资源放入一个名为MyEC2Stack. 然后我可以MyEC2Stack在父堆栈中使用来创建我想要的任意数量的资源。现在我的用例是用来MyEc2Stack创建以前存在的资源以及一组新的资源。我怎样才能做到这一点?

标签: amazon-web-servicesamazon-cloudformationnested-stack

解决方案


我会分两个阶段考虑这样做:

  1. 使用导入的资源创建独立堆栈。你已经表明你知道这一点。但您也应该知道,并非所有资源都可以导入。

  2. 在您的父堆栈中,将步骤 1 中的堆栈作为嵌套堆栈导入。这是可能的,因为您可以将现有堆栈导入为嵌套堆栈,如嵌套现有堆栈所述

将现有资源导入 CFN 并不容易。它可能需要先行一步的方法才能做到正确。因此,最好在一些测试堆栈和资源上进行练习,而不是开始更改生产模板。


推荐阅读