更新时间:2022-02-22 GMT+08:00

修改函数的metadata信息

功能介绍

修改指定的函数的metadata信息。

URI

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

URI参数说明如表1所示。

表1 URI参数说明

参数

类型

必选

说明

project_id

String

必选

Project ID。

function_urn

String

必选

函数的URN,请参考FunctionGraph函数模型

请求消息

请求参数说明如表2所示。

表2 请求参数说明

参数

类型

必选

说明

runtime

String

可选

FunctionGraph函数的执行环境,支持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和PHP 7.3。

code_type

String

必选

函数代码类型,请参考表1

code_url

String

可选

函数代码包在OBS上的地址,当“code_type”为“obs”时必选。

description

String

可选

函数的描述。

handler

String

可选

函数执行入口,请参考表1

memory_size

Int

可选

函数消耗的内存,单位M。

取值范围为:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。最小值为128,最大值为4096。

timeout

Int

可选

函数的超时时间。

user_data

String

可选

用户自定义的name/value参数。

xrole

String

可选

如函数需要访问其他云服务,则必填。

app_xrole

*String

可选

如函数需要访问其他云服务app,则必填。

initializer_handler

String

可选

函数初始化入口。

initializer_timeout

Int

可选

函数的初始化时间,范围1 ~ 300秒。

func_vpc. subnet_id

String

可选

虚拟私有云子网编号。

func_vpc.vpc_id

String

可选

虚拟私有云唯一标识。

mount_config

mount_config

可选

文件系统配置请参考表6

响应消息

响应参数说明如表3所示。
表3 响应参数说明

名称

参数类型

说明

func_urn

String

函数的URN(Uniform Resource Name),唯一标识函数。

func_name

String

函数名称。

domain_id

String

域名id。

namespace

String

租户的Project ID。

project_name

String

租户的Project Name。

package

String

函数所属的分组Package,用于用户针对函数的自定义分组。

runtime

String

FunctionGraph函数的执行环境,支持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和PHP 7.3。

timeout

Int

函数执行超时时间,超时函数将被强行停止,范围3 ~ 900秒。

handler

String

函数执行入口,规则:xx.xx,必须包含“. ”。

举例:对于Node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。

memory_size

Int

函数消耗的内存,单位M。

取值范围为:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。最小值为128,最大值为4096。

cpu

Int

函数占用的CPU资源,单位为millicore(1 core=1000 millicores)。

取值与MemorySize成比例,默认是128M内存占0.1个核(100 millicores),函数占用的CPU为基础CPU:200 millicores,再加上内存按比例占用的CPU,计算方法:内存/128 * 100 + 200。

code_type

String

函数代码类型,取值有4种:

  • inline:UI在线编辑代码
  • zip:函数代码为zip包
  • jar:函数代码为jar包,主要针对Java函数
  • obs:函数代码来源于OBS存储

code_url

String

  • 当“code_type”为“obs”时,该值为函数代码包在OBS上的地址。
  • 当“code_type”为“inline”、“zip”或“jar”时,该字段为空。

code_filename

String

函数的文件名。

  • 当“code_type”为“zip”或“jar”时,必须提供该字段。
  • 当“code_type”为“obs”或“inline”,不需要提供该字段。

code_size

Int64

函数大小,单位:字节。

user_data

String

用户自定义的name/value信息,在函数中使用的参数。

举例:如函数要访问某个主机,可以设置自定义参数:Host={host_ip},最多定义20个,总长度不超过4KB。

digest

String

函数代码SHA512 hash值,用于判断函数是否变化。

version

String

函数版本号,由系统自动生成,规则:vYYYYMMDD-HHMMSS(v+年月日-时分秒)。

image_name

String

函数版本的内部标识。

xrole

String

函数使用的权限委托名称,需要IAM支持,并在IAM界面创建委托,当函数需要访问其他服务时,必须提供该字段。

app_xrole

*String

函数app使用的权限委托名称,需要IAM支持,并在IAM界面创建委托,当函数需要访问其他服务时,必须提供该字段。

description

String

函数描述。

version_description

String

函数版本描述。

last_modified

String

函数最后一次更新时间。

func_code

String

函数代码,请参考表4

depend_list

[]String

依赖包列表。

strategy_config

String

函数策略配置,请参考表4

extend_config

String

函数扩展配置。

dependencies

[]*String

依赖代码包。

initializer_handler

String

函数初始化入口,规则:xx.xx,必须包含“. ”。

举例:对于node.js函数:myfunction.initializer,则表示函数的文件名为myfunction.js,初始化的入口函数名为initializer。

initializer_timeout

Int

初始化超时时间,超时函数将被强行停止,范围1 ~ 300秒。

func_vpc

func_vpc

VPC配置,请参考表6

mount_config

mount_config

文件系统配置,请参考表6

表4 strategy_config参数说明

参数

类型

必选

说明

concurrency

Int

必选

0:函数被禁用。

-1:函数被启用。

示例

请求示例

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" 
}

响应示例

成功时的返回格式:

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 
    }

失败时的返回格式:

HTTP/1.1 404 Not Found 
{ 
  "error_code": "FSS.1051", 
  "error_msg": "Not found the function" 
 }

状态码

状态码请参见状态码