本文介绍Custom Runtime中事件请求处理程序的结构特点、使用示例和常见问题。

背景信息

在Custom Runtime中,函数计算会将Common Headers、Body、POST、/invoke/initialize路径转发给您实现的HTTP Server。Common Headers里面的信息可以构造类似官方Runtime中的入参context,而您调用函数的请求体可以构造类似官方Runtime中的入参eventfccustomeruntimeruntime

函数调用说明

当函数是事件请求处理程序时,Http Server仅需实现Path为/invoke和Method为POST的对应逻辑即可。

Path 输入请求 预期响应
POST /invoke
  • 请求体:函数输入(InvokeFunction时指定的Payload)。
  • 请求头:Common Request Headers。具体信息,请参见函数计算公共请求头
    注意 Content-Typeapplication/octet-stream
响应体:函数Handler的返回值,包括响应码和响应头。
  • 响应码StatusCode
    • 200:成功状态。
    • 404:失败状态。
  • 响应头x-fc-status
    • 200:成功状态。
    • 404:失败状态。
通过Headers中的x-fc-status响应,向函数计算汇报本地函数是否执行成功。
  • 不设置x-fc-status函数计算默认本次调用是成功执行的,但是您的函数可能有异常,没有向函数计算汇报,函数计算会认为这次函数执行没有报错,在业务逻辑上可能没有影响,但是在监控可观测性上会有影响。如下图所示:image8hanshujisuanruntime
  • 设置x-fc-status:当您的函数存在异常,通过x-fc-status响应向函数计算汇报本次函数执行失败,并将错误堆栈信息打印到日志中。如下图所示:image9runtimefc
说明 在返回的HTTP响应中,建议您同时设置StatusCodex-fc-status

多语言使用示例

PHP

Go

Node.js

Python

Ruby

C++

TypeScript

Powershell

Lua

Dart

Rust

常见问题