我如何解決 AWS Amplify 專案中的 CloudFormation 堆疊問題?

上次更新日期:2022 年 4 月 5 日

當我嘗試部署 AWS Amplify 應用程式時,我收到類似於以下內容的 AWS CloudFormation 錯誤:"Resource is not in the state stackUpdateComplete" (資源未處於 stackUpdateComplete 狀態)。我該如何解決此問題?

簡短描述

要解決 Amplify 專案中的 CloudFormation 堆疊問題,請首先在 CloudFormation 主控台中查看以下內容來確定導致問題的原因:

  • 後端堆疊的狀態碼狀態原因
  • 後端堆疊的最近事件狀態狀態原因以及邏輯 ID 值。
  • 後端堆疊的資源狀態狀態原因以及邏輯 ID 值。

注意:狀態原因值包含 CloudFormation 傳回的錯誤訊息,用於識別導致錯誤的原因。

然後,根據主控台中列出的狀態狀態原因邏輯 ID 值修復問題。

解決方案

注意:Amplify 佈建或更新的 CloudFormation 堆疊可能會出於多種原因傳回錯誤。以下是 CloudFormation 堆疊傳回與 Amplify 相關的錯誤的最常見原因:

透過在 CloudFormation 主控台中查看堆疊的狀態碼和狀態原因,確定導致問題的原因

1.    開啟 Amplify 主控台

2.    選擇 Backend environments (後端環境) 標籤。然後選擇應用程式的後端環境。

3.    選擇 Overview (概觀) 標籤。然後,選擇 View in CloudFormation (在 CloudFormation 中檢視)。後端環境的相關 CloudFormation 堆疊的Stack info (堆疊資訊) 頁面將在 CloudFormation 主控台中打開。

4.    在 Overview (概觀) 窗格中,查看 Status (狀態) 和 Status reason (狀態原因) 值。這是後端堆疊的狀態碼狀態原因

注意:如果專案的根堆疊處於 UPDATE_ROLBACK_FAILED 狀態,請按照本文中的説明進行操作:如果我的 CloudFormation 堆疊處於 UPDATE_ROLLBACK_FAILED 狀態,怎樣才能讓它進行更新?

5.    選擇 Events (事件) 標籤。查看處於失敗狀態的所有最近事件的狀態狀態原因邏輯 ID 值。

注意:請確保您可識別狀態為 UPDATE_FAILED 的事件。

6.    選擇 Resources (資源) 標籤。查看處於失敗狀態的所有資源的狀態狀態原因邏輯 ID 值。

7.    (僅適用於巢套堆疊)在 Resources (資源) 窗格中,查找類型為 AWS::CloudFormation::Stack 的資源。然後,查看處於失敗狀態的巢套堆疊的狀態原因值。

重要提示:進行疑難排解時,忽略失敗且狀態為資源更新已取消的資源。此狀態表示依賴的下遊資源沒有失敗,但由於其他資源故障而未更新。

據主控台中列出的狀態、狀態原因和邏輯 ID 值修復問題

按照 Amplify CLI 疑難排解指南中的説明進行操作。如需詳細資訊,您還可以在 GitHub 的 Amplify CLI 問題頁面中搜尋特定的狀態原因

注意:最佳實務是在非生產環境中測試解決方案。


此文章是否有幫助?


您是否需要帳單或技術支援?