函数实例生命周期回调方法
更新时间 2026-01-07 20:00:35
最近更新时间: 2026-01-07 20:00:35
使用说明
当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。函数实例生命周期涉及Initializer和PreStop回调。
-
Initializer回调
Initializer回调在函数实例启动成功后,请求处理程序(Handler)之前执行。
-
PreStop回调
PreStop回调在函数实例销毁前执行。
| Path | 输入请求 | 期望的响应 |
|---|---|---|
(可选)POST /initialize |
请求体:无。 | 响应体:函数 Initializer的返回值。StatusCode2xx:成功状态。非2xx:失败状态。 |
(可选)GET /pre-stop |
请求体:无。 | 响应体:函数PreStop的返回值。StatusCode2xx:成功状态。非2xx:失败状态。 |
如下是一个PYthon 3.10的自定义函数简单实现了Initializer回调和PreStop回调的例子:
from http.server import BaseHTTPRequestHandler, HTTPServerclass HelloWorldHandler(BaseHTTPRequestHandler):
def write_response(self, status, body=None):
self.send_response(status)
self.send_header('Content-type', 'text/plain')
self.end_headers()
if body is not None:
self.wfile.write(body.encode())
def do_GET(self):
if self.path == "/pre-stop":
self.write_response(200)
else:
self.write_response(200, "invoke success")
def do_POST(self):
if self.path == "/initialize":
self.write_response(200)
else:
self.write_response(200, "invoke success")def run(server_class=HTTPServer, handler_class=HelloWorldHandler, port=9000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f'Starting httpd on port {port}...')
httpd.serve_forever()if __name__ == '__main__':
run()