创建函数
功能介绍
创建指定的函数。
请求消息
请求参数说明如表2所示。
参数 | 类型 | 必选 | 说明 |
|---|---|---|---|
func_name | String | 必选 | 函数名称。 |
package | String | 必选 | 函数所属的分组,用户自定义名称,可默认填写:default。 |
code_type | String | 必选 | 函数代码类型,取值有4种:
|
code_url | String | 可选 |
|
description | String | 可选 | 函数的描述。 |
code_filename | String | 可选 | 代码的文件名。
|
handler | String | 必选 | 函数执行入口。 |
memory_size | Int | 必选 | 函数消耗的内存,单位M。 取值范围为:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。最小值为128,最大值为4096。 |
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秒。 |
user_data | String | 可选 | 用户自定义的name/value信息。 |
xrole | String | 可选 | 如函数需要访问其他云服务,则必填。 |
func_code.file | String | 必选 | 函数代码内容。
|
响应消息
名称 | 参数类型 | 说明 |
|---|---|---|
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种:
|
code_url | String |
|
code_filename | String | 函数的文件名。
|
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_vpc | *String | VPC配置,请参考表6。 |
func_code | String | 函数代码,请参考表4。 |
depend_list | []String | 依赖包列表。 |
strategy_config | String | 函数策略配置,请参考表4。 |
extend_config | String | 函数扩展配置。 |
dependencies | []*String | 依赖代码包。 |
initializer_handler | String | 函数初始化入口。 |
initializer_timeout | Int | 函数的初始化时间,范围1 ~ 300秒。 |
示例
请求示例
POST /v2/7aad83af3e8d42e99ac194e8419e2c9b/fgs/functions HTTP/1.1
{
"func_name": "test",
"package": "default",
"description": "",
"handler": "test.handler",
"memory_size": 128,
"timeout": 3,
"runtime": "Python2.7",
"user_data": "",
"code_type": "inline",
"func_code": {
"file": "aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIgKGV2ZW50LCBjb250ZXh0KToKICAgIG91dHB1dCA9ICdIZWxsbyBtZXNzYWdlOiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIHJldHVybiBvdXRwdXQ="
}
} 响应示例
成功时的返回格式:
HTTP/1.1 200 OK
{
"func_urn": "urn:fss:xxxxxxxxx:c3b2459a6d5e4b548e6777e57852692d:function:default:TestCreateFunctionInPythonSdk:latest",
"func_name": "TestCreateFunctionInPythonSdk",
"user_domain": "xxxxx",
"namespace": "c3b2459a6d5e4b548e6777e57852692d",
"project_name": "xxxxxxxxxx",
"package": "default",
"runtime": "Python3.6",
"timeout": 30,
"handler": "index.handler",
"memory_size": 128,
"cpu": 300,
"code_type": "inline",
"code_filename": "index.py",
"code_size": 110,
"digest": "1c8610d1870731a818a037f1d2adf3223e8ac351aeb293fb1f8eabd2e9820069a61ed8b5d38182e760adc33a307d0e957afc357f415cd8c9c3ff6f0426fd85cd",
"version": "latest",
"image_name": "latest-0zf5g",
"last_modified": "2019-03-07T18:37:19+08:00",
"concurrency": 0,
"strategy_config": {
"concurrency": -1
},
} 失败时的返回格式:
HTTP/1.1 409 Conflict
{
"error_code": "FSS.1061",
"error_msg": "The function has existed"
} 状态码
状态码请参见状态码。

