本文介紹函數在同步調用和非同步呼叫執行失敗時,如何進行重試完成函數調用。
重試機制
函數未成功執行的重試機制因調用方式而異。
- 同步調用失敗
您需要自行重試。
- 非同步呼叫失敗Function Compute會自動重試的情況如下表所示。
執行失敗原因 狀態代碼 伺服器端行為 是否計費 解決方案 Function Compute的錯誤類型為 HandledInvocationError
和UnhandledInvocationError
。關於Function Compute錯誤類型的更多資訊,請參見基礎資訊。200 預設重試3次,或根據非同步設定次數重試。 按照調用次數計費。關於計費的詳細資料,請參見計費概述。 請自行排查您的代碼。 函數並發執行超上限。 429 以二進位指數退避方式重試執行5小時。當您的函數執行失敗後將在0.5秒後開始重試,後續重試執行的時間間隔將以二進位指數退避方式計算,即重試時間間隔為1秒、2秒、4秒、8秒等持續重試5小時。 否 由於阿里雲帳號(主帳號)在單個地區內預設的按量執行個體上限數為300。如果您需要提高該限制,請加入DingTalk使用者群(DingTalk群號64970014484)申請。 系統內部錯誤。 500 以二進位指數退避方式重試執行5小時。當您的函數執行失敗後將在0.5秒後開始重試,後續重試執行的時間間隔將以二進位指數退避方式計算,即重試時間間隔為1秒、2秒、4秒、8秒等持續重試5小時。 否 請加入DingTalk使用者群(DingTalk群號64970014484)諮詢。 Function Compute資源不足。 503 以二進位指數退避方式重試執行5小時。當您的函數執行失敗後將在0.5秒後開始重試,後續重試執行的時間間隔將以二進位指數退避方式計算,即重試時間間隔為1秒、2秒、4秒、8秒等持續重試5小時。 否 請加入DingTalk使用者群(DingTalk群號64970014484)諮詢。
若您在使用過程中遇到問題,請聯絡我們。