如何刪除卡在 DELETE_FAILED 狀態的 AWS CloudFormation 堆疊?

1 分的閱讀內容
0

我想刪除 AWS CloudFormation 堆疊,但我的堆疊卡在 DELETE_FAILED 狀態。

簡短描述

您的堆疊可能會卡在 DELETE_FAILED 狀態,原因如下:

  • 堆疊資源具有無法刪除的相依物件或其他相依項。若要解決此問題,請完成刪除具有相依物件或其他無法刪除的相依項堆疊一節中的步驟。
  • 使用的服務角色無效或無法擔任。若要解決此問題,請完成刪除具有無效角色的堆疊一節中的步驟。
  • 自訂資源無法在預期的時間內穩定。若要解決此問題,請完成刪除未能穩定的自訂資源堆疊一節中的步驟。

解決方法

刪除具有相依物件或其他無法刪除的相依項堆疊

在您進行頻外變更時,通常會發生相依性問題。例如,如果堆疊中的安全群組連接到不屬於堆疊一部分的彈性網路介面,您的堆疊就會失敗。因為無法刪除安全群組資源而堆疊失敗。若要刪除堆疊,您必須保留該相依性資源。

若要在保留資源的同時刪除堆疊,請完成下列步驟:

AWS CloudFormation 主控台

  1. 開啟 AWS CloudFormation 主控台
  2. 選擇卡在 DELETE_FAILED 狀態的堆疊。
  3. 選擇刪除
    **注意:**一個視窗會開啟,並列出無法刪除的資源。
  4. 在視窗中,選取您要保留的所有資源,然後選擇刪除堆疊

AWS Command Line Interface

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新的 AWS CLI 版本

執行下列 delete-stack 命令:

$ aws cloudformation delete-stack --stack-name my-stack --retain-resources myresource1 myresource2

**注意:**將 my-stack 取代為您的堆疊名稱。將 myresource1myresource2 取代為無法刪除的資源邏輯 ID。

CloudFormation 堆疊會嘗試再次刪除堆疊,但不會刪除您選取要保留的任何資源。堆疊的狀態變更為 DELETE_COMPLETE。

**重要:**為避免不必要的費用,您必須手動刪除當刪除堆疊時所保留的資源。

刪除具有無效角色的堆疊

如果您嘗試刪除使用現在不存在的服務角色所建立的堆疊,會收到下列錯誤: "An error occurred (ValidationError) when calling the DeleteStack operation: Role is invalid or cannot be assumed"

若要解決此錯誤,請完成下列步驟:

  1. 開啟 AWS CloudFormation 主控台
  2. 選擇您要刪除的堆疊以查看其詳細資料。
  3. 堆疊資訊索引標籤中,記錄指派給堆疊的 IAM 角色名稱。
  4. 在步驟 3 中使用與 IAM 角色相同的名稱建立 AWS Identity and Access Management (IAM) 角色
    **重要:**建立 IAM 角色時,請確認其具有刪除堆疊中資源的正確許可
  5. 在 AWS CloudFormation 主控台中,重新嘗試刪除堆疊。

刪除無法穩定的自訂資源堆疊

若要刪除無法在預期時間內穩定的自訂資源堆疊,請參閱如何疑難排解 AWS Lambda 支援的自訂資源卡在 AWS CloudFormation 中 DELETE_FAILED 狀態或 DELETE_IN_PROGRESS 狀態的問題?


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