运行时 API 版本
2018-06-01
的 OpenAPI 规范在
runtime-api.zip
中提供
为了创建 API 请求 URL,运行时会从
AWS_LAMBDA_RUNTIME_API
环境变量获取 API 终端节点,添加 API 版本,然后添加所需的资源路径。
例 请求
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"
下一个调用
路径
–
/runtime/invocation/next
方法
–
GET
运行时将此消息发送到 Lambda 以请求调用事件。响应主体包含来自调用的有效负载,该负载是包含来自函数触发器的事件数据的 JSON 文档。响应标头包含有关调用的额外数据。
Lambda-Runtime-Aws-Request-Id
– 请求 ID,用于标识触发了函数调用的请求。
例如,
8476a536-e9f4-11e8-9739-2dfe598c3fcd
。
Lambda-Runtime-Deadline-Ms
– 函数超时的日期(Unix 时间形式,以毫秒为单位)。
例如,
1542409706888
。
Lambda-Runtime-Invoked-Function-Arn
– Lambda 函数的 ARN、版本或在调用中指定的别名。
例如,
arn:aws:lambda:us-east-2:123456789012:function:custom-runtime
。
Lambda-Runtime-Trace-Id
–
AWS X-Ray跟踪标头
。
例如,
Root=1-5bef4de7-ad49b0e87f6ef6c87fc2e700;Parent=9a9197af755a6419;Sampled=1
。
Lambda-Runtime-Client-Context
– 对于来自 AWS Mobile SDK 的调用,为有关客户端应用程序和设备的数据。
Lambda-Runtime-Cognito-Identity
– 对于来自 AWS Mobile SDK 的调用,为有关 Amazon Cognito 身份提供商的数据。
不要对
GET
请求设置超时,因为响应可能会延迟。在 Lambda 引导运行时和运行时返回事件之间,运行时进程可能会冻结几秒钟。
请求 ID 用于跟踪 Lambda 中的调用。使用它可在您发送响应时指定调用。
跟踪标头包含跟踪 ID、父 ID 和采样决策。如果对请求进行采样,则由 Lambda 或某个上游服务对请求进行采样。运行时应设置具有标头的值的
_X_AMZN_TRACE_ID
。X-Ray 开发工具包会读取此项以获取 ID 并确定是否要跟踪请求。
路径
–
/runtime/invocation/
AwsRequestId
/response
方法
–
POST
在函数运行完成后,运行时会将调用响应发送到 Lambda。对于同步调用,Lambda 会将响应发送到客户端。
例 成功请求
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "SUCCESS"
初始化错误
如果函数返回错误或运行时在初始化期间遇到错误,则运行时将使用此方法向 Lambda 报告错误。
路径
–
/runtime/init/error
方法
–
POST
Lambda-Runtime-Function-Error-Type
– 运行时遇到的错误类型。必需:否
此标头由字符串值组成。Lambda 接受任何字符串,但建议您使用 <category.reason> 格式。例如:
-
Runtime.NoSuchHandler
-
Runtime.APIKeyNotFound
-
Runtime.ConfigInvalid
-
Runtime.UnknownReason
ErrorRequest
– 有关错误的其他信息。必需:否
此字段是具有以下结构的 JSON 对象:
errorMessage: string (text description of the error),
errorType: string,
stackTrace: array of strings
请注意,Lambda 接受任何
errorType
值。
以下示例显示了 Lambda 函数错误消息,其中函数无法解析调用中提供的事件数据。
例 函数错误
{
"errorMessage" : "Error parsing event data.",
"errorType" : "InvalidEventDataException",
"stackTrace": [ ]
响应正文参数
500 – 容器错误。不可恢复状态。运行时应立即退出。
例 初始化错误请求
ERROR="{\"errorMessage\" : \"Failed to load function.\", \"errorType\" : \"InvalidFunctionException\"}"
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"
如果函数返回错误或运行时遇到错误,则运行时将使用此方法向 Lambda 报告错误。
路径
–
/runtime/invocation/
AwsRequestId
/error
方法
–
POST
Lambda-Runtime-Function-Error-Type
– 运行时遇到的错误类型。必需:否
此标头由字符串值组成。Lambda 接受任何字符串,但建议您使用 <category.reason> 格式。例如:
-
Runtime.NoSuchHandler
-
Runtime.APIKeyNotFound
-
Runtime.ConfigInvalid
-
Runtime.UnknownReason
ErrorRequest
– 有关错误的其他信息。必需:否
此字段是具有以下结构的 JSON 对象:
errorMessage: string (text description of the error),
errorType: string,
stackTrace: array of strings
请注意,Lambda 接受任何
errorType
值。
以下示例显示了 Lambda 函数错误消息,其中函数无法解析调用中提供的事件数据。
例 函数错误
{
"errorMessage" : "Error parsing event data.",
"errorType" : "InvalidEventDataException",
"stackTrace": [ ]
响应正文参数