文档

函数实例生命周期回调

更新时间:
一键部署

本文介绍Custom Runtime实现函数实例生命周期回调的方法。

回调方法

当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。函数实例生命周期涉及Initializer和PreStop回调。更多信息,请参见函数实例生命周期

Path

输入请求

期望的响应

(可选)POST /initialize

请求体:无。

请求头:Common Request Headers。具体信息,请参见函数计算公共请求头

响应体:函数Initializer的返回值。

StatusCode

  • 2xx:成功状态。

  • 非2xx:失败状态。

Python语言中关于initialize的示例代码如下:

@app.route('/initialize', methods=['POST'])
def init_invoke():
  rid = request.headers.get(x-fc-request-id)
  print("FC Initialize Start RequestId: " + rid)
  # do your things
  print("FC Initialize End RequestId: " + rid)
  return "OK"

Python语言中函数执行报错的示例代码如下:

@app.route('/initialize', methods=['POST'])
def init():
    raise Exception("hahaha")
    return "OK", 200, []
@app.route('/initialize', methods=['POST'])
def init():
    return "OK", 404, []

(可选)GET /pre-stop

响应体:函数PreStop的返回值。

StatusCode

  • 2xx:成功状态。

  • 非2xx:失败状态。

如果您想在Custom Runtime中使用Initializer回调方法,您只需在您的HTTP Server中实现Path为/initialize和Method为POST的对应逻辑即可。示例代码,请参见上表中关于initialize的示例代码。

重要

如果创建的函数不设置Initializer,就无需实现/initialize。此时,即使HTTP Server实现了/initialize,代码中的/initialize逻辑也无法被调用执行。

PreStop回调方法的使用,同Initializer回调方法。

回调错误码

错误码ID

解释说明

400

  • 函数Initializer回调失败返回400或404,不会重新发送请求,但系统会继续重试直到调用成功为止。

  • 函数PreStop回调失败返回400或404,不会影响函数实例的冷冻和停止。

404

500

函数计算重启实例。

  • 本页导读 (1)
文档反馈