當函數非同步呼叫執行失敗後,Function Compute自動進行錯誤重試。本文介紹重試機制以及如何在Function Compute控制台配置重試策略。
重試機制
對於常見錯誤,系統預設的重試策略如下表所示。
狀態代碼 | 執行失敗原因 | 伺服器端行為 |
200 | 錯誤類型為 | 預設重試3次,或根據非同步呼叫配置中設定的maxAsyncRetryAttempts重試。 |
429 | 函數並發執行超過上限被流控。 | 以二進位指數退避方式重試執行5小時。當您的函數執行失敗後將在0.5秒後開始重試,後續重試執行的時間間隔將以二進位指數退避方式計算,即重試時間間隔為1秒、2秒、4秒、8秒等持續重試5小時。 |
500 | 系統錯誤。 | |
503 | Function Compute資源不足。 |
配置重試策略
Function Compute支援自訂重試次數和訊息最大存活時間長度。
- 登入Function Compute控制台,在左側導覽列,單擊服務及函數。
- 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
- 在函數管理頁面,單擊目標函數名稱。
在目標函數詳情頁面,單擊非同步配置頁簽,然後在非同步策略地區,單擊編輯。
在編輯非同步策略面板,設定以下配置項,然後單擊確定。
配置項
解釋說明
任務模式(可選)
是否開啟非同步任務模式,關於非同步任務模式,請參見非同步任務功能概覽。
配置重試策略時,無需配置該參數。
最大重試次數
用於配置非同步呼叫流程中的訊息最大重試次數,取值範圍[0,8]。
Function Compute在預設情況下,對非同步觸發失敗的訊息進行3次重試,您可以根據業務需求減少或增加對非同步呼叫的重試。
訊息最大存活時間長度
用於配置非同步呼叫流程中的訊息最大存活時間長度,取值範圍[1,604800],預設為86400,單位為秒。
該時間長度從觸發非同步呼叫時開始計算,到該訊息出隊準備進行處理為止。如果超過配置的訊息最大存活時間長度,該條訊息將被丟棄。未被消費的訊息將計入CloudMonitor非同步呼叫觸發事件(次)指標。關於指標詳情,請參見監控指標。