本文介绍函数实例健康检查的背景信息、使用限制和健康检查的行为,以及如何在函数计算控制台设置函数实例的健康检查策略。
背景信息
选择使用自定义运行时创建方式创建函数或选择使用容器镜像创建方式创建函数且选择您自己的容器镜像作为函数运行环境时,您的自定义运行环境可能出现不稳定的情况,导致函数实例工作异常。这种情况下,函数计算支持为函数实例设置周期性健康检查,避免请求消息被分配至异常实例而导致请求失败。
使用限制
仅支持为自定义运行时环境和使用自定义镜像启动的函数实例设置健康检查功能。
健康检查的行为
实例启动行为
如果您为函数配置了健康检查,实例启动的行为如下。
- 如果函数定义了初始化回调程序Initializer,则先执行Initializer。否则,直接进行首次健康检查。
- 如果首次健康检查成功,则认为实例健康,并进入健康检查循环,执行周期性健康检查,具体流程如下。否则,认为实例启动失败,健康检查流程终止,并返回相关错误信息。
- 如果连续健康检查失败,次数达到您设置的最大失败次数,则认为该函数实例不健康。函数计算将尝试调度请求到其他实例。
- 如果不健康的实例连续健康检查成功,次数达到您设置的探测成功阈值,则认为该实例已恢复健康。
关于探测成功阈值和最大失败次数的设置,请参见使用控制台为函数实例设置健康检查。
单次健康检查行为
函数计算执行一次健康检查的行为如下。
- 根据函数配置,向指定HTTP路径发送GET请求。
- 如果GET请求执行没有超时,HTTP返回状态码小于400且大于等于200,则认为本次检查成功。否则,认为本次检查失败。
健康检查失败后的调度行为
如果函数实例不健康,函数计算将尝试调度请求到其他实例。
- 如果函数计算调度请求成功,请求将在新的函数实例上执行。
- 如果函数计算未能及时调度请求到其他实例,将返回健康检查失败错误信息。下一次执行健康检查时,会直接调度到新的函数实例。
使用控制台为函数实例设置健康检查
本文以选择使用自定义运行时创建方式创建一个运行环境为Node.js 14,请求处理程序类型为处理事件请求的函数为例,介绍如何为函数的实例配置健康检查功能。
步骤一:创建函数
步骤二:为函数实例设置健康检查
更多信息
除控制台外,函数计算还支持调用API配置实例的健康检查功能。更多信息,请参见: