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
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. |
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.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot