Publishing a Function Version
Function
This API is used to publish a function version.
URI
POST /v2/{project_id}/fgs/functions/{function_urn}/versions
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). |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
digest |
No |
String |
MD5 key. |
version |
No |
String |
Function version. |
description |
No |
String |
Version description. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
func_urn |
String |
Function URN. |
func_name |
String |
Function name. |
domain_id |
String |
Domain ID. |
namespace |
String |
Project ID. |
project_name |
String |
Project name. |
package |
String |
Group to which the function belongs. This field is defined to group functions. |
runtime |
String |
Environment for executing a function. Options: Python2.7 Python 3.6 Python 3.9 Python 3.10 Go 1.x Java 8 Java 11 Node.js 6.10 Node.js 8.10 Node.js 10.16 Node.js 12.13 Node.js 14.18 Node.js 16.17 Node.js 18.15 C# (.NET Core 2.1) C# (.NET Core 3.1) Custom PHP 7.3 HTTP Custom image-based functions Cangjie1.0 Enumeration values:
|
timeout |
Integer |
Maximum duration the function can be executed. Value range: 3s–259,200s. |
handler |
String |
Handler of a function in the format of "xx.xx". Max. 60 of letters. It must contain a period (.). For example, for Node.js function myfunction.handler, the file name is myfunction.js, and the handler function is handler. Minimum length: 3 character. Maximum length: 128 characters. |
memory_size |
Integer |
Memory consumed by a function. Unit: MB. The value can be 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584 or 4096. The value ranges from 128 to 4096. |
cpu |
Integer |
CPU resources of a function. Unit: millicore (1 core = 1000 millicores). The value of this field is proportional to that of MemorySize. By default, 100 CPU millicores are required for 128 MB memory. |
code_type |
String |
Function code type. Options: inline: inline code zip: ZIP file obs: function code stored in an OBS bucket jar: JAR file, mainly for Java functions Custom-Image-Swr: The function code comes from the SWR custom image. Enumeration values:
|
code_url |
String |
If code_type is set to obs, enter the OBS URL of the function code package. If code_type is not set to obs, leave this parameter blank. |
code_filename |
String |
Name of a function file. This parameter is mandatory only when code_type is set to jar or zip. |
code_size |
Long |
Code size in bytes. |
user_data |
String |
Name/Value information defined for the function. These are parameters used in the function. For example, if a function needs to access a host, define Host={host_ip}. You can define a maximum of 20 such parameters, and their total length cannot exceed 4 KB. |
encrypted_user_data |
String |
User-defined name/value to be encrypted. |
digest |
String |
SHA512 hash value of function code, which is used to determine whether the function has changed. |
version |
String |
Function version, which is automatically generated by the system. The version name is in the format of "vYYYYMMDD-HHMMSS" (v+year/month/day-hour/minute/second). |
image_name |
String |
Internal identifier of a function version. |
xrole |
String |
Agency used by the function. You need to create an agency on the IAM console. This field is mandatory when a function needs to access other services. After specifying a function execution agency, you can use the context method in the function handler to obtain a token, an AK, and an SK for accessing other cloud services. No agency is required if FunctionGraph does not access any cloud services. |
app_xrole |
String |
Execution agency. You can optimize performance by configuring a separate agency for function execution, otherwise, the same agency is used for both execution and configuration. |
description |
String |
Function description. |
version_description |
String |
Version description. |
last_modified |
String |
Time when the function was last updated. |
func_vpc |
FuncVpc object |
VPC configuration. An agency with VPC permissions must be configured for the function. |
mount_config |
MountConfig object |
Mounting configuration. |
strategy_config |
StrategyConfig object |
Function policy configuration. |
dependencies |
Array of Dependency objects |
Dependency packages. |
initializer_handler |
String |
Initializer of the function in the format of "xx.xx". It must contain a period (.). This parameter is mandatory when the initialization function is configured. For example, for Node.js function myfunction.initializer, the file name is myfunction.js, and the initialization function is initializer. |
initializer_timeout |
Integer |
Maximum duration the function can be initialized. Value range: 1s–300s. This parameter is mandatory when the initialization function is configured. |
pre_stop_handler |
String |
The pre-stop handler of a function. The value must contain a period (.) in the format of xx.xx. For example, for Node.js function myfunction.pre_stop_handler, the file name is myfunction.js, and the initialization function is pre_stop_handler. |
pre_stop_timeout |
Integer |
Maximum duration the function can be initialized. Value range: 1s–90s. |
enterprise_project_id |
String |
Enterprise project ID. This parameter is mandatory if you create a function as an enterprise user. |
long_time |
Boolean |
Whether to allow a long timeout. |
log_group_id |
String |
Log group ID. |
log_stream_id |
String |
Log stream ID. |
type |
String |
v2 indicates an official version, and v1 indicates a deprecated version. Enumeration values:
|
enable_dynamic_memory |
Boolean |
Whether to enable dynamic memory allocation. |
function_async_config |
FunctionAsyncConfig object |
Return struct of the asynchronous execution notification settings. |
Parameter |
Type |
Description |
---|---|---|
domain_id |
String |
Domain name ID. |
namespace |
String |
Project ID. |
vpc_name |
String |
VPC name. |
vpc_id |
String |
VPC ID. |
subnet_name |
String |
Subnet name. |
subnet_id |
String |
Subnet ID. |
cidr |
String |
Subnet mask. |
gateway |
String |
Gateway. |
security_groups |
Array of strings |
Security group. |
Parameter |
Type |
Description |
---|---|---|
mount_user |
MountUser object |
User information. |
func_mounts |
Array of FuncMount objects |
Mounted resources. |
Parameter |
Type |
Description |
---|---|---|
user_id |
String |
User ID, a non-0 integer from –1 to 65534. |
user_group_id |
String |
User group ID, a non-0 integer from –1 to 65534. |
Parameter |
Type |
Description |
---|---|---|
mount_type |
String |
Mount type. The value can be sfs, sfsTurbo, or ecs. This parameter is mandatory when func_mounts is not empty. |
mount_resource |
String |
ID of the mounted resource (cloud service ID). This parameter is mandatory when func_mounts is not empty. |
mount_share_path |
String |
Remote mount path. For example, 192.168.0.12:/data. This parameter is mandatory if mount_type is set to ecs. |
local_mount_path |
String |
Function access path. This parameter is mandatory when func_mounts is not empty. |
Parameter |
Type |
Description |
---|---|---|
concurrency |
Integer |
Maximum number of instances for a single function. For v1, the value can be 0 or –1; for v2, it ranges from –1 to 1000.
|
concurrent_num |
Integer |
Number of concurrent requests per instance. This parameter is supported only by v2. The value ranges from 1 to 1,000. |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Dependency version ID. |
owner |
String |
Domain ID of the dependency owner. |
link |
String |
URL of the dependency on OBS. |
runtime |
String |
Environment for executing a function. Options: Python2.7 Python 3.6 Python 3.9 Python 3.10 Go 1.x Java 8 Java 11 Node.js 6.10 Node.js 8.10 Node.js 10.16 Node.js 12.13 Node.js 14.18 Node.js 16.17 Node.js 18.15 C# (.NET Core 2.1) C# (.NET Core 3.1) Custom PHP 7.3 HTTP Custom image-based functions Cangjie1.0 Enumeration values:
|
etag |
String |
MD5 value of a dependency. |
size |
Long |
Dependency size. |
name |
String |
Dependence name. |
description |
String |
Dependency description. |
file_name |
String |
File name of a dependency package (ZIP). |
version |
Long |
Dependency version ID. |
dep_id |
String |
Dependency ID. |
last_modified |
Integer |
Time when the function was last updated. |
Parameter |
Type |
Description |
---|---|---|
max_async_event_age_in_seconds |
Integer |
Maximum validity period of a message. Value range: 60–86,400. Unit: second. |
max_async_retry_attempts |
Integer |
Maximum number of retry attempts to be made if asynchronous invocation fails. Default value: 3. Value range: 0–8. |
destination_config |
FuncAsyncDestinationConfig object |
Asynchronous invocation target. |
created_time |
String |
Time when asynchronous execution notification was configured. |
last_modified |
String |
Time when the asynchronous execution notification settings were last modified. |
Parameter |
Type |
Description |
---|---|---|
on_success |
FuncDestinationConfig object |
Target to be invoked when a function is successfully executed. |
on_failure |
FuncDestinationConfig object |
Target to be invoked when a function fails to be executed due to a system error or an internal error. |
Parameter |
Type |
Description |
---|---|---|
destination |
String |
Object type.
Enumeration values:
|
param |
String |
Parameters (in JSON format) corresponding to the target service.
|
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. |
Example Requests
Publish a function version.
POST https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/versions { "version" : "v1", "description" : "v1" }
Example Responses
Status code: 200
OK
{ "func_urn" : "urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test", "func_name" : "test", "domain_id" : "14ee2e3501124efcbca7998baa24xxxx", "namespace" : "46b6f338fc3445b8846c71dfb1fbxxxx", "project_name" : "xxxxx", "package" : "default", "runtime" : "Node.js6.10", "timeout" : 3, "handler" : "test.handler", "memory_size" : 128, "cpu" : 300, "code_type" : "inline", "code_filename" : "inline.js", "code_size" : 272, "digest" : "faa825575c45437cddd4e369bea69893bcbe195d478178462ad90984fe72993f3f59d15f41c5373f807f3e05fb9af322c55dabeb16565c386e402413458e6068", "version" : "latest", "image_name" : "latest-191025153727@zehht", "last_modified" : "2019-10-25 15:37:27", "strategy_config" : { "concurrency" : 0 } }
Status code: 404
Not found.
{ "error_code" : "FSS.1051", "error_msg" : "Not found the function" }
Status Codes
Status Code |
Description |
---|---|
200 |
OK |
400 |
Bad request. |
401 |
Unauthorized. |
403 |
Forbidden. |
404 |
Not found. |
500 |
Internal server error. |
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.