Publishing a Function Version
Function
This API is used to publish a function version.
You can publish a version based on the code of the LATEST version, and FunctionGraph automatically generates a version name. A function can have a maximum of 10 versions.
URI
POST /v2/{project_id}/fgs/functions/{function_urn}/versions
Table 1 describes the URI parameters.
Parameter | Type | Mandatory | Description |
---|---|---|---|
project_id | String | Yes | Project ID. |
function_urn | String | Yes | Function URN. See Function Model. |
Request
Table 2 describes the request parameters.
Parameter | Type | Mandatory | Description |
---|---|---|---|
digest | String | No | Code digest of the function for which you want to publish a version. If this parameter is not specified, a version will be published using the code of the LATEST version. |
version | String | No | Name of the version to be published. If this parameter is not specified, the current time in the format of "yyyymmdd-HHMMSS" will be used. |
description | String | No | Description of the version to be published. |
Response
Table 3 describes the response parameters.
Parameter | Type | Description |
---|---|---|
func_urn | String | Function URN. |
func_name | String | Function name. |
domain_id | String | Domain ID. |
namespace | String | Tenant's project ID. |
project_name | String | Tenant's project name. |
package | String | Group to which the function belongs. This field is defined to group functions. |
runtime | String | Environment for executing the function. FunctionGraph supports Node.js 6.10, Node.js 8.10, Node.js 10.16, Node.js 12.13, Python 2.7, Python 3.6, Java 8, Go 1.8, C# (.NET Core 2.0), C# (.NET Core 2.1), C# (.NET Core 3.1), and PHP 7.3. |
timeout | Int | Maximum duration the function can be executed. Value range: 3s–900s. |
handler | String | Handler of the function in the format of "xx.xx". It must contain a period (.). For example, for Node.js function myfunction.handler, the file name is myfunction.js, and the entry point function is handler. |
memory_size | Int | Memory (MB) consumed by the function. Options: 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584, and 4096. |
cpu | Int | Number of CPU millicores used by the function (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. The value is calculated as follows: Memory/128 x 100 + 200 (basic CPU millicores). |
code_type | String | Function code type. Options:
|
code_url | String |
|
code_filename | String | Function file name.
|
code_size | Int64 | Code size in bytes. |
user_data | String | Name/Value information defined for 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. |
digest | String | SHA512 hash value of function code, which is used to determine whether the function is 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 Identity and Access Management (IAM) console. This field is mandatory when a function needs to access other services. |
app_xrole | *String | Agency used by the function app. You need to create an agency on the IAM console. This field is mandatory when a function needs to access other services. |
description | String | Description of the function. |
version_description | String | Description of the function version. |
last_modified | String | Time when the function was last updated. |
func_code | String | Function code. See Table 4. |
depend_list | []String | Dependency list. |
strategy_config | String | Function policy configuration. See Table 4. |
extend_config | String | Function extension configuration. |
dependencies | []*String | Dependency code package. See Table 5. |
initializer_handler | String | Initializer of the function in the format of "xx.xx". It must contain a period (.). For example, for Node.js function myfunction.initializer, the file name is myfunction.js, and the initialization function is initializer. |
initializer_timeout | Int | Maximum duration the function can be initialized. Value range: 1s–300s. |
func_vpc | *String | Virtual Private Cloud (VPC) configuration. See Table 6. |
mount_config | *String | Disk mount configuration. See Table 7. |
Parameter | Type | Mandatory | Description |
---|---|---|---|
concurrency | Int | Yes |
|
Example
Example request
POST /v2/7aad83af3e8d42e99ac194e8419e2c9b/fgs/functions/urn:fss:xxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test:latest/versions HTTP/1.1{"digest": "","version": "1.0.0","description": "test publish version"}
Example response
The format of the response for a successful request is as follows:
HTTP/1.1 200{"func_urn": "urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test","func_name": "test","user_domain": "cff01_hk","namespace": "7aad83af3e8d42e99ac194e8419e2c9b","project_name": "xxxxxxxxx","package": "default","runtime": "Node.js6.10","timeout": 3,"handler": "test.handler","memory_size": 128,"cpu": 300,"code_type": "inline","code_filename": "index.js","code_size": 272,"digest": "decbce6939297b0b5ec6d1a23bf9c725870f5e69fc338a89a6a4029264688dc26338f56d08b6535de47f15ad538e22ca66613b9a46f807d50b687bb53fded1c6","version": "latest","image_name": "latest-5qe8e","xrole": "cff","description": "111","last_modified": "2018-03-28T11:30:32+08:00","func_code": {},"strategy_config": {"concurrency": -1},"initializer_handler": "index.initializer","initializer_timeout": 3 }
The format of the response for a failed request is as follows:
HTTP/1.1 404 Not Found{"error_code": "FSS.1051","error_msg": "Not found the function"}
Status Code
See Status Codes.
- Function
- URI
- Request
- Response
- Example
- Status Code