本文介绍Custom Runtime事件函数的入参、返回结构、函数判断及调用说明。

背景信息

在Custom Runtime中,函数计算系统会将Common Headers、Body、POST以及/invoke/initialize等路径转发给HTTP Server。Common Headers里面的信息可以构造类似官方Runtime中的入参context,而您调用函数的请求体可以构造类似官方Runtime中的入参event。如果您没有对事件调用函数定义为def handler(context, event)的需求,您可以直接基于这个HTTP Server实现业务逻辑。

函数入参

  • event:POST请求体(Body)。
  • context:
    • 通过x-fc-access-key-idx-fc-access-key-secretx-fc-security-token请求头获取服务角色中的临时访问凭证访问云服务。
    • 通过x-fc-request-id获取当前请求ID。
    • 所有请求头信息请参见Common Headers

函数返回结构

函数结果通过HTTP响应结构体返回。

函数判断

对于Custom Runtime,您可以根据Headers中的x-fc-control-path来判断HTTP函数调用和事件函数调用。

  • /invoke:该请求为事件函数调用。/invoke表示是Invoke函数调用请求。
  • /initialize:该请求为事件函数调用。/initialize表示第一次创建执行环境时,系统自动发起的Initializer函数调用请求。
  • /http-invoke:该请求为HTTP函数调用。/http-invoke表示是一个HTTP Invoke函数调用请求。函数计算会将您的请求(包括Path、Body以及Headers)加上Common Headers后转发给Custom Runtime,Custom Runtime返回的响应头和响应体则会被返回给客户端。

函数调用说明

Path x-fc-control-path 输入请求 期望的响应
POST /invoke /invoke

请求体:函数输入(InvokeFunction时指定的Payload)。

请求头:Common Request Headers。

响应体:函数Handler的返回值。
  • 200:成功状态。
  • 404:失败状态。

通过header中的x-fc-status响应。

POST /initialize /initialize

请求体:无。

请求头:Common Request Headers。

响应体:成功时无响应体。
  • 200:成功状态。
  • 404:失败状态。

通过Headers中的x-fc-status响应。