簡體   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