Executing a Function Synchronously
Function
This API is used to execute a function synchronously. Clients must wait for explicit responses to their requests from the function. Responses are returned only after function invocation is complete.
URI
POST /v2/{project_id}/fgs/functions/{function_urn}/invocations
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. For details, see Obtaining a Project ID. |
function_urn |
Yes |
String |
Function URN. For details, see the function model description. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token. |
Content-Type |
Yes |
String |
Message body type (format). |
X-Cff-Log-Type |
No |
String |
Options: tail (4 KB logs will be returned) and null (no logs will be returned). |
X-CFF-Request-Version |
No |
String |
Response body format. Options: v0 and v1.
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
{Customized_key} |
Yes |
Object |
Request body for executing a function. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
X-Cff-Invoke-Summary |
String |
Execution summary of the synchronous invocation. |
X-Cff-Request-Id |
String |
Request ID of the synchronous invocation. |
X-Cff-Function-Log |
String |
User log of the synchronous invocation. Set X-Cff-Log-Type:tail in the request header. Intercept and encode the last 2,000 bytes of the log using Base64. |
X-CFF-Billing-Duration |
String |
Billing information of the synchronous invocation. |
X-Cff-Response-Version |
String |
Response format: v0: text format v1: JSON format |
X-Func-Err-Code |
String |
Error code of the synchronous invocation. The value is 0 if the execution is successful. |
X-Is-Func-Err |
String |
Indicates whether the error occurs in a user function. |
Parameter |
Type |
Description |
---|---|---|
request_id |
String |
Request ID. |
result |
String |
Function execution result. |
log |
String |
Function execution log. |
status |
Integer |
Function execution status. |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
Status code: 401
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
Status code: 403
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
Status code: 404
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
Status code: 503
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
Example Requests
Execute a function synchronously with the request parameter as a key pair ("k":"v").
POST /v2/{project_id}/fgs/functions/{function_urn}/invocations { "k" : "v" }
Example Responses
Status code: 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" }
Status Codes
Status Code |
Description |
---|---|
200 |
OK |
400 |
Bad request. |
401 |
Unauthorized. |
403 |
Forbidden. |
404 |
Not found. |
500 |
Internal server error. |
503 |
Service unavailable. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.