繁体   English   中英

CloudFormation:删除整个嵌套堆栈

[英]CloudFormation: Deleting an entire nested stack

我有一个 CloudFormation 堆栈,它由 3 个嵌套堆栈组成:

Resources:
  ParamsSetup:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: a-params.yaml          
  ResourcePrep:
     Type: AWS::CloudFormation::Stack
     Properties:
       TemplateURL: b-prep.yaml
  Services:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: c-service.yaml

我意识到ResourcePrep嵌套堆栈是不必要的,所以我将该堆栈中唯一重要的资源移动到Services堆栈中,并从我的主模板中删除了该堆栈:

Resources:
  ParamsSetup:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: a-params.yaml     
  Services:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: c-service.yaml

现在我有一个问题。 CloudFormation 更新失败,因为Services中的资源已经属于ResourcePrep ,但ResourcePrep不应再存在。

我曾期望 CloudFormation 足够聪明,可以删除已删除的堆栈,但事实并非如此。 删除的堆栈仍然存在,我不知道如何摆脱它。 我读过的所有内容都说您永远不应该手动删除嵌套堆栈。

您在这里有几个选择,没有一个像您希望的那样特别优雅。

  1. 删除堆栈并留下您想要注释掉(或删除)的资源,以便进行 cloudformation 更新/重建。 在删除堆栈成功更新后,读取您想要/取消注释的资源。
  2. 如果需要持久化资源,请在资源上添加删除保留参数,运行更新,然后删除整个堆栈。 更新完成后重新添加/重新关联现有资源与您选择的堆栈。
  3. 在您选择的堆栈中创建一个具有不同名称的相同资源并删除奇数堆栈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM