我的 AWS CloudFormation 堆疊卡在 CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS、UPDATE_ROLLBACK_IN_PROGRESS 或 DELETE_IN_PROGRESS 狀態。
簡短說明
在大多數情況下,您必須等待 CloudFormation 堆疊逾時。逾時長度取決於 CloudFormation 為達到期望狀態而等待之各個資源穩定化需求。
您可以控制堆疊逾時,並使用回復觸發器來控制 CloudFormation 等待的時間長度。如需回復觸發程序的詳細資訊,請參閱使用 AWS CloudFormation 堆疊終止保護與回復觸發程序以維持基礎結構可用性。
解決方法
找出卡住的資源
請完成以下步驟:
- 開啟 CloudFormation console (CloudFormation 主控台)。
- 在導覽窗格中,選擇 Stacks (堆疊),然後選取處於卡住狀態的堆疊。
- 選擇 Resources (資源) 索引標籤。
- 在 Resources (資源) 區段中,參閱 Status (狀態) 欄。找出卡在 CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS 或 DELETE_IN_PROGRESS 狀態的資源。
- 在 AWS 管理主控台中,檢查與這些資源所屬服務對應的資源。
**注意:**例如,如果 Amazon Elastic Container Service (Amazon ECS) 服務卡在建立狀態,請在 Amazon ECS 主控台中檢查該資源。
如果資源在對應的主控台中沒有顯示任何錯誤,請使用 AWS CloudTrail 日誌來對問題進行疑難排解。如需 CloudTrail 日誌的相關資訊,請參閱使用 CloudTrail 事件歷史記錄檢視事件。
檢查 CloudTrail 日誌
請完成以下步驟:
- 開啟 CloudFormation console (CloudFormation 主控台)。
- 在導覽窗格中,選擇 Stacks (堆疊),然後選取處於卡住狀態的堆疊。
- 選擇 Resources (資源) 索引標籤。
- 在 Resources (資源) 區段中,參閱 Status (狀態) 欄。找出任何卡在 CREATE_IN_PROGRESS、UPDATE_IN_PROGRESS 或 DELETE_IN_PROGRESS 狀態的資源。
- 選擇 Events (事件) 索引標籤,然後記下 CloudFormation 初始化建立該卡住資源的時間戳記。
- 開啟 CloudTrail console (CloudTrail 主控台)。
- 在導覽窗格中,選擇 Event history (事件歷史記錄)。
- 在 Time range (時間範圍) 中,於起始時間 (From) 輸入您在步驟 5 記下的日期與時間。在結束時間 (To) 中,輸入比起始時間晚 5 分鐘的日期與時間。
注意:例如,如果 CloudFormation 在 2020-01-01 上午 9:00 初始化建立卡住的資源,請將起始時間輸入為 2020-01-01 上午 09:00,並將結束時間輸入為 2020-01-01 上午 9:05。
- 選擇 Apply (套用)。
- 在傳回的事件清單中,找出與資源建立或更新 API 呼叫相關的 API 呼叫。例如,您可以在 Amazon Elastic Block Store (Amazon EBS) 磁碟區更新時找到 ModifyVolume。
**提示:**請稍候幾分鐘讓 API 呼叫顯示於 CloudTrail 日誌中。API 呼叫不一定會立即出現在日誌中。
略過逾時
您或許可以略過逾時來解決堆疊的狀態。如需詳細資訊,請參閱如何防止 Amazon ECS 服務在 AWS CloudFormation 中無法完成穩定化?以及如何刪除在 CloudFormation 中卡在 DELETE_FAILED 或 DELETE_IN_PROGRESS 狀態的 Lambda 支援自訂資源?
如果堆疊卡在 CREATE_IN_PROGRESS 或 UPDATE_IN_PROGRESS 狀態,您可以使用下列堆疊操作來停止進行:
**注意:**若要了解問題的根本原因,請參閱 CloudFormation 疑難排解。