将当前资源迁移到可重用的嵌套堆栈中

时间:2020-06-26 20:25:22

标签: amazon-web-services amazon-cloudformation nested-stack

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

例如,假设您在每个堆栈中创建一个EC2实例以及cloudwatch警报。我想通过将所有相关资源放入称为MyEC2Stack的嵌套堆栈中来对其进行模块化。然后,我可以在父堆栈中使用MyEC2Stack来创建任意数量的资源。现在,我的用例是使用MyEc2Stack创建以前存在的资源以及一组新资源。我该如何实现?

1 个答案:

答案 0 :(得分:1)

我会分两个阶段进行研究:

  1. 使用导入的资源创建独立堆栈。您已经表明您知道这一点。但是您还应该注意,not all resources可以被导入。

  2. 在您的父堆栈中从步骤1中导入堆栈作为嵌套堆栈。这是可能的,因为您可以按照Nesting an Existing Stack

    的说明将现有堆栈作为嵌套堆栈导入。

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