我想在處於 AWS Elastic Beanstalk 環境時,對錯誤「此操作的環境處於無效狀態。必須準備就緒」進行疑難排解。
簡短說明
當您收到此錯誤時,請確定環境中沒有正在進行的操作。如果有進行中的操作,則必須根據自己的需求等待更新完成,或取消進行中的更新。當環境再次準備就緒時,您可以重新開始更新。如果環境中沒有進行中的操作,且您仍然收到錯誤,則您的環境可能處於無法復原狀態。此狀態會阻止在環境中執行進一步的操作。如果您需要將環境恢復為可用狀態的進一步協助,請聯絡 AWS Support。不過,在聯絡 AWS Support 之前,您可以先檢查一些事項。
解決方法
Elastic Beanstalk 會在後端建立 AWS CloudFormation 堆疊,以管理與環境相關聯的資源。您可以在 CloudFormation 主控台中檢查名為 awseb-(env-ID)-stack 的此堆疊。
當 Elastic Beanstalk 環境進入無法復原狀態時,CloudFormation 堆疊會顯示 *_FAILED 狀態。在 AWS Support 團隊可將環境變更為可用狀態之前,堆疊必須顯示 *_COMPLETE 狀態。
若要更正 CloudFormation 堆疊的 *_FAILED 狀態,請根據堆疊狀態執行下列步驟:
"UPDATE_ROLLBACK_FAILED" 狀態
1. 導覽至 CloudFormation 主控台。然後,從相應堆疊事件中識別在回復期間無法更新的資源。
2. 從 CloudFormation 主控台選取繼續更新回復選項,以讓堆疊進入 UPDATE_ROLLBACK_COMPLETE 狀態。
3. 在繼續更新回復對話方塊中,展開進階疑難排解。在要略過的資源 - 選用區段中,選取無法更新的資源。
4. 選擇繼續更新回復。堆疊現在會顯示 UPDATE_ROLLBACK_COMPLETE 狀態。
5. 聯絡 AWS Support 團隊以將環境變更為可用狀態。
6. 當環境處於可用狀態時,您可以對環境執行進一步的更新。
"DELETE_FAILED" 狀態
1. 導覽至 CloudFormation 主控台。然後,從相應堆疊事件中識別無法刪除的資源。
2. 手動刪除無法刪除的資源。例如,如果無法刪除的資源是安全群組,請從 Amazon Elastic Compute Cloud (Amazon EC2) 主控台將其刪除。
3. 從 CloudFormation 主控台刪除 CloudFormation 堆疊。堆疊現在會顯示 DELETE_COMPLETE 狀態。
4. 聯絡 Elastic Beanstalk 支援團隊以將環境變更為可用狀態。
5. 當環境為可用狀態時,您可以重新建置或終止環境。
"CREATE_FAILED" 狀態
如果您的堆疊具有此狀態,則最好建立一個新的 Elastic Beanstalk 環境,然後終止目前環境。這是因為堆疊的狀態不夠穩定,無法執行回復。最佳實務是不對目前環境執行進一步的更新。
終止目前環境之前,請嘗試下列動作:
- 如果您希望新環境具有類似的組態,請利用儲存的組態。
- 執行藍/綠部署,並在新環境正常運作時,在兩個環境的網址之間執行 CNAME 交換。