Reviewed-by: Eotvos, Oliver <oliver.eotvos@t-systems.com> Co-authored-by: Chen, Junjie <chenjunjie@huawei.com> Co-committed-by: Chen, Junjie <chenjunjie@huawei.com>
46 KiB
Function Model
Function Model
The function model of FunctionGraph is as follows:
{ "functions": [ { "func_urn": "urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test", "func_name": "test", "domain_id": "cff01_hk", "namespace": "7aad83af3e8d42e99ac194e8419e2c9b", "project_name": "xxxxxxxxxx", "package": "default", "runtime": "Node.js6.10", "timeout": 3, "handler": "test.handler", "memory_size": 128, "cpu": 300, "code_type": "inline", "code_url": "", "code_filename": "index.js", "code_size": 272, "user_data": "", "digest": "decbce6939297b0b5ec6d1a23bf9c725870f5e69fc338a89a6a4029264688dc26338f56d08b6535de47f15ad538e22ca66613b9a46f807d50b687bb53fded1c6", "version": "latest", "image_name": "latest-5qe8e", "xrole": "cff", "app_xrole": null, "description": "111", "version_description": "", "last_modified": "2018-03-28T11:30:32+08:00", "func_code": { "file": "", "link": "" }, "func_vpc":null, "mount_config":null, "depend_list": null, "strategy_config": { "concurrency": -1 }, "extend_config": "", "dependencies": null, "initializer_handler": "index.initializer", "initializer_timeout": 3 } ], "next_marker": 45 }
Description
Table 1 describes the parameters in the function model.
Parameter |
Description |
---|---|
func_urn |
Function URN. |
func_name |
Function name. |
domain_id |
Tenant name. |
namespace |
Project ID. |
project_name |
Project name. |
package |
Group to which the function belongs. This field is defined to group functions. |
runtime |
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 |
Maximum duration the function can be executed. Value range: 3s–900s. |
handler |
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 |
Memory (MB) consumed by the function. Options: 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584, and 4096. |
cpu |
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 |
Function code type. Options:
|
code_url |
|
code_filename |
Function file name.
|
code_size |
Code size in bytes. |
user_data |
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 |
SHA512 hash value of function code, which is used to determine whether the function is changed. |
version |
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 |
Internal identifier of a function version. |
xrole |
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 |
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 |
Description of the function. |
version_description |
Description of the function version. |
last_modified |
Time when the function was last updated. |
func_code |
Function code. See Table 2. |
depend_list |
Dependency list. |
strategy_config |
Function policy configuration. See Table 3. |
extend_config |
Function extension configuration. |
dependencies |
Dependency list. See Table 5. |
initializer_handler |
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 |
Maximum duration the function can be initialized. Value range: 1s–300s. |
func_vpc |
Virtual Private Cloud (VPC) configuration. See Table 4. |
mount_config |
File system configuration. See Table 6. |
Parameter |
Description |
---|---|
file |
Function code. Nothing will be returned. |
link |
Function code link. Nothing will be returned. |
Parameter |
Description |
---|---|
concurrency |
|
Parameter |
Type |
Mandatory |
Description |
---|---|---|---|
vpc_name |
String |
- |
VPC name. |
vpc_id |
String |
Yes when func_vpc is not empty. |
VPC ID. |
subnet_name |
String |
- |
Subnet name. |
subnet_id |
String |
Yes when func_vpc is not empty. |
Subnet ID. |
cidr |
String |
- |
Subnet mask. |
gateway |
String |
- |
Gateway. |
Parameter |
Type |
Mandatory |
Description |
---|---|---|---|
owner |
String |
- |
Domain ID of the dependency owner. |
link |
String |
- |
URL of the dependency package on OBS. |
runtime |
String |
- |
Language of the dependency package (only used for classification purposes). |
etag |
String |
- |
MD5 value of the dependency package. |
size |
Int |
- |
Size of the dependency package. |
name |
String |
- |
Name of the dependency package. |
description |
String |
- |
Description of the dependency package. |
file_name |
String |
- |
File name of the dependency package (ZIP). |
Parameter |
Type |
Mandatory |
Description |
---|---|---|---|
mount_user |
- |
File system user configuration. |
|
func_mounts |
- |
File system list. |
Parameter |
Type |
Mandatory |
Description |
---|---|---|---|
user_id |
Int |
Yes when mount_user is not empty. |
User ID, which is an integer from –1 to 65,534, excluding 0, 1000, and 1002. |
user_group_id |
Int |
Yes when mount_user is not empty. |
User group ID, which is an integer from –1 to 65,534, excluding 0, 1000, and 1002. |
Parameter |
Type |
Mandatory |
Description |
---|---|---|---|
mount_type |
String |
Yes when func_mounts is not empty. |
Mount type. Options: ecs. |
mount_resource |
String |
Yes when func_mounts is not empty. |
ID of the mounted resource (corresponding cloud service). |
mount_share_path |
String |
Yes when mount_type is set to ecs. |
Remote mount path. Example: 192.168.0.12:/data. |
local_mount_path |
String |
Yes when func_mounts is not empty. |
Function access path. |
The format of a function URN is as follows:
urn:fss:<region_id>:<project_id>:function:<package>:<function_name>[:<version>|:!<alias>]

A function URN is divided into eight fields by colons. The value of region_id is included in the system configuration. You can set this parameter to the same as that in the backend. The content in the brackets ([]) is a function version or alias. If you enter an alias, add an exclamation mark (!) in front of it for easy identification.
When a function URN is used as an API parameter, you can provide it in a simplified format as follows:
- 1 field: <function_name>. project_id is obtained from a token, package is default, and version is latest.
- 2 fields: <package>:<function_name>. project_id is obtained from a token, and version is latest.
- 3 fields: <project_id>:<package>:<function_name>. version is latest.
- 4 fields: <project_id>:<package>:<function_name>:<Version or Alias>.
- 7 fields: urn:fss:<region_id>:<project_id>:function:<package>:<function_name>. version is latest.
- 8 fields: urn:fss:<region_id>:<project_id>:function:<package>:<function_name>:<Version or Alias>.