本文介紹函數實例健康檢查的背景信息、使用限制和健康檢查的行為,以及如何在函數計算控制臺設置函數實例的健康檢查策略。
背景信息
選擇使用自定義運行時創建方式創建函數或選擇使用容器鏡像創建方式創建函數且選擇您自己的容器鏡像作為函數運行環境時,您的自定義運行環境可能出現不穩定的情況,導致函數實例工作異常。這種情況下,函數計算支持為函數實例設置周期性健康檢查,避免請求消息被分配至異常實例而導致請求失敗。
使用限制
僅支持為自定義運行時環境和使用自定義鏡像啟動的函數實例設置健康檢查功能。
健康檢查的行為
實例啟動行為
如果您為函數配置了健康檢查,實例啟動的行為如下。
- 如果函數定義了初始化回調程序Initializer,則先執行Initializer。否則,直接進行首次健康檢查。
- 如果首次健康檢查成功,則認為實例健康,并進入健康檢查循環,執行周期性健康檢查,具體流程如下。否則,認為實例啟動失敗,健康檢查流程終止,并返回相關錯誤信息。
- 如果連續健康檢查失敗,次數達到您設置的最大失敗次數,則認為該函數實例不健康。函數計算將嘗試調度請求到其他實例。
- 如果不健康的實例連續健康檢查成功,次數達到您設置的探測成功閾值,則認為該實例已恢復健康。
關于探測成功閾值和最大失敗次數的設置,請參見使用控制臺為函數實例設置健康檢查。
單次健康檢查行為
函數計算執行一次健康檢查的行為如下。
- 根據函數配置,向指定HTTP路徑發送GET請求。
- 如果GET請求執行沒有超時,HTTP返回狀態碼小于400且大于等于200,則認為本次檢查成功。否則,認為本次檢查失敗。
健康檢查失敗后的調度行為
如果函數實例不健康,函數計算將嘗試調度請求到其他實例。
- 如果函數計算調度請求成功,請求將在新的函數實例上執行。
- 如果函數計算未能及時調度請求到其他實例,將返回健康檢查失敗錯誤信息。下一次執行健康檢查時,會直接調度到新的函數實例。
使用控制臺為函數實例設置健康檢查
本文以選擇使用自定義運行時創建方式創建一個運行環境為Node.js 14,請求處理程序類型為處理事件請求的函數為例,介紹如何為函數的實例配置健康檢查功能。
步驟一:創建函數
步驟二:為函數實例設置健康檢查
更多信息
除控制臺外,函數計算還支持調用API配置實例的健康檢查功能。更多信息,請參見: