导入函数
功能介绍
导入函数
URI
POST /v2/{project_id}/fgs/functions/import
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| project_id | 是 | String | 租户项目 ID,获取方式请参见获取项目ID。 | 
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| X-Auth-Token | 是 | String | 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 | 
| Content-Type | 是 | String | 消息体的类型(格式) | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| func_name | 是 | String | 函数名 可包含字母、数字、下划线和中划线,以大/小写字母开头,以字母或数字结尾,长度不超过60个字符。 最小长度:1 最大长度:60 | 
| file_name | 是 | String | 文件名 | 
| file_type | 是 | String | 文件类型 | 
| file_code | 是 | String | 函数代码。代码必须要进行base64编码 | 
| package | 否 | String | 应用名称,默认为default | 
响应参数
状态码: 200
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| 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函数的执行环境 枚举值: 
 | 
| timeout | Integer | 函数执行超时时间,超时函数将被强行停止,范围3~259200秒。 | 
| handler | String | 函数执行入口 规则:xx.xx,必须包含“. ” 举例:对于node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。长度不超过128个字符。 最小长度:3 最大长度:128 | 
| memory_size | Integer | 函数消耗的内存。 单位M。 取值范围为:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。 最小值为128,最大值为4096。 | 
| gpu_memory | Integer | 函数消耗的显存,只支持自定义运行时与自定义镜像函数配置GPU。 单位MB。 取值范围为:1024、2048、3072、4096、5120、6144、7168、8192、9216、10240、11264、12288、13312、14336、15360、16384。 最小值为1024,最大值为16384。 | 
| cpu | Integer | 函数占用的cpu资源。 单位为millicore(1 core=1000 millicores)。 取值与MemorySize成比例,默认是128M内存占0.1个核(100 millicores)。 | 
| code_type | String | 函数代码类型,取值有5种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 Custom-Image-Swr: 函数代码来源于SWR自定义镜像。 枚举值: 
 | 
| code_url | String | 当code_type为obs时,该值为函数代码包在OBS上的地址,code_type为其他值时,该字段为空。 | 
| code_filename | String | 函数的文件名,当code_type为jar/zip时必须提供该字段,inline和obs不需要提供。 | 
| code_size | Long | 函数大小,单位:字节。 | 
| 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 | FuncVpc object | 函数vpc配置。需同时为函数配置具有vpc权限的委托。 | 
| depend_list | Array of strings | 依赖id列表 | 
| depend_version_list | Array of strings | 依赖版本id列表 | 
| strategy_config | StrategyConfig object | 函数策略配置。 | 
| extend_config | String | 函数扩展配置。 | 
| initializer_handler | String | 函数初始化入口,规则:xx.xx,必须包含“. ”。当配置初始化函数时,此参数必填。 举例:对于node.js函数:myfunction.initializer,则表示函数的文件名为myfunction.js,初始化的入口函数名为initializer。 | 
| initializer_timeout | Integer | 初始化超时时间,超时函数将被强行停止,范围1~300秒。当配置初始化函数时,此参数必填。 | 
| pre_stop_handler | String | 函数预停止函数的入口,规则:xx.xx,必须包含“. ”。 举例:对于node.js函数:myfunction.pre_stop_handler,则表示函数的文件名为myfunction.js,初始化的入口函数名为pre_stop_handler。 | 
| pre_stop_timeout | Integer | 初始化超时时间,超时函数将被强行停止,范围1~90秒。 | 
| enterprise_project_id | String | 企业项目ID,在企业用户创建函数时必填。 | 
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| domain_id | String | 域名id。 | 
| namespace | String | 租户的project id。 | 
| vpc_name | String | 虚拟私有云名称。 | 
| vpc_id | String | 虚拟私有云唯一标识。 | 
| subnet_name | String | 子网名称。 | 
| subnet_id | String | 子网编号。 | 
| cidr | String | 子网掩码。 | 
| gateway | String | 网关。 | 
| security_groups | Array of strings | 安全组 | 
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| concurrency | Integer | 单函数最大实例数,v1取值0和-1,v2取值-1到1000 -1代表该函数实例数无限制 0代表该函数被禁用 | 
| concurrent_num | Integer | 单实例并发数,v2版本才支持,取值1到1000 | 
状态码: 409
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误信息 | 
状态码: 500
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误信息 | 
请求示例
导入函数,文件名为"test.zip",类型为zip,文件base64编码为"xxx"。
POST https://{Endpoint}/v2/{project_id}/fgs/functions/import
{
  "func_name" : "test",
  "file_name" : "test.zip",
  "file_type" : "zip",
  "file_code" : "xxxxxxxxxxxxxxxxxxxxx"
}
 响应示例
状态码: 200
ok
{
  "func_urn" : "urn:fss:{region}:46b6f338fc3445b8846c71dfb1fbd9e8:function:default:test_v1_2",
  "func_name" : "test_v1_2",
  "domain_id" : "14ee2e35****a7998b******aa24cabf",
  "namespace" : "46b6f338fc3445b8846c71dfb1fbd9e8",
  "project_name" : "{region}",
  "package" : "default",
  "runtime" : "Node.js6.10",
  "timeout" : 3,
  "handler" : "index.handler",
  "memory_size" : 128,
  "cpu" : 300,
  "code_type" : "zip",
  "code_filename" : "index.zip",
  "code_size" : 6709,
  "digest" : "faa825575c45437cddd4e369bea69893bcbe195d478178462ad90984fe72993f3f59d15f41c5373f807f3e05fb9af322c55dabeb16565c386e402413458e6068",
  "version" : "latest",
  "image_name" : "latest-191025153727@zehht",
  "last_modified" : "2019-10-25 15:37:27",
  "strategy_config" : {
    "concurrency" : -1
  },
  "enterprise_project_id" : "46b6f338fc3445b8846c71dfb1fbxxxx"
}
  状态码: 409
Conflict
{
  "error_code" : "FSS.1061",
  "error_msg" : "The function has existed"
}
 状态码
| 状态码 | 描述 | 
|---|---|
| 200 | ok | 
| 409 | Conflict | 
| 500 | Internal Server Error 服务内部错误。 | 
错误码
请参见错误码。
 
    