Updated on 2022-02-22 GMT+08:00

Modifying the Metadata of a Function

Function

This API is used to modify the metadata of a function.

URI

PUT /v2/{project_id}/fgs/functions/{function_urn}/config

Table 1 describes the URI parameters.

Table 1 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.

Table 2 Request parameters

Parameter

Type

Mandatory

Description

runtime

String

No

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.

code_type

String

Yes

Code type of a function. See Table 1.

code_url

String

No

Address of a function code package in Object Storage Service (OBS). This parameter is mandatory when code_type is set to obs.

description

String

No

Description of the function.

handler

String

No

Entry point of the function. See Table 1.

memory_size

Int

No

Memory (MB) consumed by the function.

Options: 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584, and 4096.

timeout

Int

No

Timeout allowed for the function.

user_data

String

No

Name/Value information defined for the function.

xrole

String

No

This parameter is mandatory if the function needs to access other cloud services.

app_xrole

*String

No

This parameter is mandatory if the function needs to access apps in other cloud services.

initializer_handler

String

No

Initializer of the function.

initializer_timeout

Int

No

Maximum duration the function can be initialized. Value range: 1s–300s.

func_vpc. subnet_id

String

No

Virtual Private Cloud (VPC) subnet ID.

func_vpc.vpc_id

String

No

VPC ID.

mount_config

mount_config

No

File system configuration. See Table 6.

Response

Table 3 describes the response parameters.
Table 3 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:

  • inline: inline code
  • zip: ZIP file
  • jar: JAR file (mainly for Java functions)
  • obs: function code stored in an Object Storage Service (OBS) bucket

code_url

String

  • When code_type is set to obs, this parameter indicates the address of a function code package in OBS.
  • When code_type is set to inline, zip, or jar, this parameter is left blank.

code_filename

String

Function file name.

  • When code_type is set to zip or jar, this parameter is required.
  • When code_type is set to obs or inline, this parameter is not required.

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.

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

func_vpc

Virtual Private Cloud (VPC) configuration. See Table 6.

mount_config

mount_config

File system configuration. See Table 6.

Table 4 strategy_config parameter

Parameter

Type

Mandatory

Description

concurrency

Int

Yes

0: The function is disabled.

-1: The function is enabled.

Example

Example request

PUT  
/v2/7aad83af3e8d42e99ac194e8419e2c9b/fgs/functions/urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test:latest/config HTTP/1.1 
{ 
  "description": "", 
  "handler": "test.handler", 
  "memory_size": 128, 
  "timeout": 3, 
  "runtime": "Python", 
  "user_data": "", 
  "code_type": "inline", 
  "func_code": { 
    "file": "aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ=" 
  }, 
  "xrole": "cffservice" 
}

Example response

The format of the response for a successful request is as follows:

HTTP/1.1 200 
{       
    "func_urn": "urn:fss:xxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test",      
    "func_name": "test",      
    "user_domain": "cff01_hk",      
    "namespace": "7aad83af3e8d42e99ac194e8419e2c9b",      
    "project_name": "xxxxxxxx",       
    "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",
    "last_modified": "2018-03-28T11:30:32+08:00", 
   "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.