我想刪除 AWS CloudFormation 堆疊,但它卡在 DELETE_FAILED 狀態。
簡短描述
您的堆疊可能由於以下其中一個原因而卡在 DELETE_FAILED 狀態:
- 堆疊資源具有您無法刪除的相依物件或其他相依項。
- 您使用的服務角色無效,或您無法承擔 AWS Identity and Access Management (IAM) 角色。
- 自訂資源未能在預設回應逾時內穩定下來。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
刪除具有無法刪除相依性的堆疊
在您進行頻外變更時,可能會出現相依性問題。例如,您的堆疊有一個安全群組,該安全群組附加到不屬於堆疊的彈性網路介面。您將無法刪除堆疊,因為您無法刪除安全群組。若要刪除堆疊但保留具有相依性的資源,請使用 CloudFormation 主控台強制刪除堆疊。或者,執行下列 AWS CLI 命令。
若要刪除卡在 DELETE_FAILED 狀態的堆疊並保留未成功刪除的資源,請執行以下 delete-stack 命令:
aws cloudformation delete-stack --stack-name my-stack --retain-resources myresource1 myresource2
**注意:**將 my-stack 替換為您的堆疊名稱,並將 myresource1 和 myresource2 替換為未刪除資源的 ID。
CloudFormation 會刪除堆疊,但不會刪除您保留的資源。堆疊狀態變更為 DELETE_COMPLETE。
**注意:**為避免保留的資源產生費用,請在刪除堆疊後手動刪除保留的資源。
若要強制刪除具有無法刪除相依性的堆疊,請執行以下 delete-stack 命令:
aws cloudformation delete-stack --stack-name my-stack --deletion-mode FORCE_DELETE_STACK
**注意:**將 my-stack 替換為您的堆疊名稱。
刪除具有無效角色的堆疊
如果您嘗試刪除使用不再存在的服務角色的堆疊,則會收到以下錯誤:
"An error occurred (ValidationError) when calling the DeleteStack operation: Role is invalid or cannot be assumed."
若要解決此問題,請完成以下步驟:
- 開啟 CloudFormation console (CloudFormation 主控台)。
- 選取要刪除的堆疊。
- 在 Stack info (堆疊資訊) 索引標籤中,記下堆疊 IAM 角色的名稱。
- 建立 IAM 角色,其名稱與上一個步驟中的 IAM 角色相同。**重要:**建立 IAM 角色時,請確認其是否具有刪除堆疊中資源的權限。
- 使用 CloudFormation 主控台刪除堆疊。
如果您不記得已刪除角色的權限,那麼您就無法建立具有相同權限的新角色來刪除堆疊。取得新角色,然後使用新角色執行以下 delete-stack 命令來刪除堆疊:
aws cloudformation delete-stack --stack-name my-stack --role-arn new_role
**注意:**將 my-stack 替換為您的堆疊名稱,並將 new_role 替換為您新角色的 Amazon Resource Number (ARN)。
刪除不穩定的自訂資源堆疊
若要對此問題進行疑難排解,請參閱如何刪除 CloudFormation 中卡在 DELETE_FAILED 狀態或 DELETE_IN_PROGRESS 狀態的 Lambda 支援自訂資源?
相關資訊
DeleteStack