跳至內容

當我的 CloudFormation 堆疊卡在 UPDATE_ROLLBACK_FAILED 狀態時,該如何進行更新?

2 分的閱讀內容
0

我的 AWS CloudFormation 堆疊卡在 UPDATE_ROLLBACK_FAILED 狀態。

簡短說明

對於處於 UPDATE_ROLLBACK_FAILED 狀態的 CloudFormation 堆疊,請使用 ContinueUpdateRollback 動作來復原堆疊,或使用 DeleteStack 動作來刪除堆疊。若要重試回復,請先解決錯誤,然後使用 ContinueUpdateRollback 執行回復操作。

**注意:**若要解決錯誤,您可能需要變更權限或修改其他設定。

如需導致更新回復失敗的錯誤資訊,請參閱更新回復失敗

在某些情況下,當您重試回復時,錯誤並未解決。發生此情況時,您在執行 ContinueUpdateRollback 動作時必須跳過失敗的資源。當堆疊處於 UPDATE_ROLLBACK_COMPLETE 狀態時,您可以照常更新堆疊。

解決方法

若要將堆疊回復至運作狀態,請使用 CloudFormation 主控台或 AWS Command Line Interface (AWS CLI)。

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

使用 CloudFormation 主控台

若要回復堆疊且不跳過資源,請完成以下步驟:

  1. 開啟 CloudFormation console (CloudFormation 主控台)。
  2. 在導覽窗格中,選擇 Stacks (堆疊)。
  3. Stack name (堆疊名稱) 欄位中,選取卡在 UPDATE_ROLLBACK_FAILED 狀態的堆疊。
  4. 選擇 Stack Actions (堆疊動作),然後選擇 Continue update rollback (繼續更新回復)。
  5. 在新視窗中選擇 Continue update rollback (繼續更新回復)。

若要回復堆疊並跳過失敗的資源,請完成以下步驟:

  1. 開啟 CloudFormation console (CloudFormation 主控台)。
  2. 在導覽窗格中,選擇 Stacks (堆疊)。
  3. Stack name (堆疊名稱) 欄位中,選取卡在 UPDATE_ROLLBACK_FAILED 狀態的堆疊。
  4. 選擇 Stack actions (堆疊動作),然後選擇 Continue update rollback (繼續更新回復)。
  5. Continue update rollback (繼續更新回復) 對話方塊中,展開 Advanced troubleshooting (進階疑難排解)。
  6. Resources to skip - optional (要跳過的資源 - 選用) 區段中,選取您想要跳過的資源。
  7. 選擇 Continue update rollback (繼續更新回復)。

使用 AWS CLI

若要回復堆疊,請執行以下 continue-update-rollback AWS CLI 命令:

$ aws cloudformation continue-update-rollback --stack-name awsstackname123 --resources-to-skip awsfaultyresource123

**注意:**將 awsstackname123 替換為您的堆疊名稱,並將 awsfaultyresource123 替換為您資源的邏輯 ID。

如果 CLI 命令成功,您將不會在回應中看到錯誤。

更新堆疊或資源,使其保持一致

CloudFormation 會將指定資源的狀態設定為 UPDATE_COMPLETE。接著,CloudFormation 會繼續回復堆疊。回復完成後,跳過資源的狀態與堆疊範本中的資源狀態不一致。

在您執行另一個堆疊更新之前,您必須更新堆疊或資源以使其彼此保持一致。如果您不執行此操作,則隨後的堆疊更新可能會失敗,且堆疊會變得無法復原。

回復巢狀堆疊

當您回復巢狀堆疊中的父系堆疊時,子系堆疊也會隨之回復。如果要處理的資源太多,則巢狀堆疊可能會卡在 UPDATE_ROLLBACK_FAILED 狀態。若要解決此問題,請跳過子系堆疊,並繼續更新回復。

如果您從巢狀堆疊跳過的指定資源不符合 NestedStackName.ResourceLogicalID 格式,則您可能會收到以下錯誤訊息:

「Nested stack resources can only be skipped when their embedded stack statuses are one of [DELETE_COMPLETE, DELETE_IN_PROGRESS, DELETE_FAILED"]」

如需更多如何將巢狀堆疊回復至運作狀態的資訊,請參閱繼續回復更新

AWS 官方已更新 8 個月前