如何将现有资源导入其父级为 CloudFormation 中根堆栈的嵌套堆栈中?

1 分钟阅读
0

我在 AWS CloudFormation 中有一个嵌套堆栈,其父堆栈是根堆栈。我想将现有资源导入嵌套堆栈中。但是,当我尝试在根堆栈中导入资源时,出现错误“此模板不包含任何要导入的资源”。

简短描述

当嵌套堆栈的父堆栈是根堆栈时,最好只修改根堆栈。

**注意:**以下解决方案适用于将资源导入其父堆栈为根堆栈的嵌套堆栈。

**重要提示:**执行导入操作后,请务必对堆栈运行偏差检测,以验证导入的资源是否没有偏差。

解决方法

要将资源导入嵌套堆栈中,请执行以下步骤:

  1. 在嵌套的 AWS::CloudFormation::Stack 资源上使用 Retain DeletionPolicy 更新根模板,以便在不删除堆栈的情况下将其与根堆栈分离。
  2. 通过从模板中删除 AWS::CloudFormation::Stack 来更新根堆栈。
    注意:更新根堆栈后,嵌套堆栈仍标记为已嵌套
  3. 对分离的嵌套堆栈执行导入操作以导入现有资源。
    注意:由于堆栈仍视为已嵌套,因此会出现一条警告,建议您改为更新根堆栈。忽略此警告并继续更新嵌套堆栈。请勿在导入期间修改任何其他资源。
  4. 通过使用易于移除的更改(例如添加输出或标签)再次对其进行更新,将分离的嵌套堆栈移出 IMPORT_COMPLETE 状态。
  5. 对根堆栈执行导入操作,将嵌套堆栈重新添加到其嵌套层次结构中
    **注意:**请确保根模板包含对嵌套堆栈更新模板的引用,以便它包含新导入的资源。

相关信息

CloudFormation 研讨会:嵌套堆栈实验室

AWS 官方
AWS 官方已更新 2 年前