本文介绍Web Server模式的Custom Container Runtime实现函数实例生命周期回调的方法。
使用限制
非Web Server模式的Custom Container Runtime不支持Initializer、PreFreeze和PreStop三种回调。函数计算仅在客户端主动取消请求时,向相关实例发送SIGTERM信号,如有需要,您可以在容器业务逻辑内自行捕获SIGTERM信号。
回调方法
当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。函数实例生命周期涉及Initializer、PreFreeze和PreStop三种回调。更多信息,请参见函数实例生命周期回调。
下文介绍Initializer回调方法,PreFreeze和PreStop回调方法与之相同。
Path | 输入请求 | 期望的响应 |
---|---|---|
(可选)POST /initialize | 请求体:无。 请求头:Common Request Headers。具体信息,请参见函数计算公共请求头。 | 响应体:函数Initializer 的返回值。 StatusCode
Python语言中关于 initialize 的示例代码如下:
|
(可选)GET /pre-freeze |
| 响应体:函数PreFreeze的返回值。 StatusCode
|
(可选)GET /pre-stop |
| 响应体:函数PreStop的返回值。 StatusCode
|
如果您想在Custom Runtime中使用Initializer回调方法,您需要在您的HTTP Server中实现Path为
/initialize
和Method为POST
的对应逻辑。示例代码,请参见上表中关于initialize
的示例代码。重要 创建的函数不设置Initializer时,无需实现
/initialize
。此时,即使HTTP Server实现了/initialize
,代码中的/initialize
逻辑也无法被调用执行。