更新时间:2024-03-28 GMT+08:00

同步执行函数

功能介绍

同步调用指的是客户端请求需要明确等到响应结果,也就是说这样的请求必须得调用到用户的函数,并且等到调用完成才返回。

URI

POST /v2/{project_id}/fgs/functions/{function_urn}/invocations

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目 ID,获取方式请参见获取项目ID

function_urn

String

函数的URN,详细解释见FunctionGraph函数模型的描述。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

Content-Type

String

消息体的类型(格式)

X-Cff-Log-Type

String

取值为:tail(返回函数执行后的4K日志),或者为空(不返回日志)。

X-CFF-Request-Version

String

返回体格式,取值v0,v1。 v0:默认返回文本格式 v1:默认返回json格式,sdk需要使用此值。

表3 请求Body参数

参数

是否必选

参数类型

描述

{自定义key}

Object

执行函数请求体

响应参数

状态码: 200

表4 响应Header参数

参数

参数类型

描述

X-Cff-Invoke-Summary

String

本次同步调用执行信息摘要。

X-Cff-Request-Id

String

本次同步调用请求id。

X-Cff-Function-Log

String

本次同步调用用户日志,需在请求头中设置X-Cff-Log-Type:tail。截取日志的后2000个字节并且做base编码。

X-CFF-Billing-Duration

String

本次同步调用计费信息。

X-Cff-Response-Version

String

返回体格式。

v0:默认返回文本格式。

v1:默认返回json格式。

X-Func-Err-Code

String

本次同步调用错误码,若执行成功则为0。

X-Is-Func-Err

String

是否为用户函数错误。

表5 响应Body参数

参数

参数类型

描述

request_id

String

请求ID。

result

String

函数执行结果

log

String

函数执行返回日志

status

Integer

函数执行返回状态

状态码: 400

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 401

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 403

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 404

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 500

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 503

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

同步执行函数,请求参数为键值对“k”:“v”。

POST /v2/{project_id}/fgs/functions/{function_urn}/invocations

{
  "k" : "v"
}

响应示例

状态码: 200

OK

{
  "result" : "{\"statusCode\": 200, \"isBase64Encoded\": false, \"body\": \"{\\\"key\\\": \\\"value\\\"}\", \"headers\": {\"Content-Type\": \"application/json\"}}",
  "log" : "2022-09-20T11:43:57Z Start invoke request '1cbe80f3-3c65-475e-ad88-76ac518d386a', version: v1\nHello, World!\n\n2022-09-20T11:43:58Z Finish invoke request '1cbe80f3-3c65-475e-ad88-76ac518d386a', duration: 65.828ms, billing duration: 66ms, memory used: 21.473MB, billing memory: 128MB",
  "status" : 200,
  "request_id" : "1cbe80f3-3c65-475e-ad88-76ac518d386x"
}

状态码

状态码

描述

200

OK

400

Bad Request 请求错误。

401

Unauthorized 鉴权失败。

403

Forbidden 没有操作权限。

404

Not Found 找不到资源。

500

Internal Server Error 服务内部错误。

503

Service Unavailable 服务不可用。

错误码

请参见错误码