更新时间:2022-04-29 GMT+08:00
分享

创建函数

功能介绍

创建函数。

调试

您可以在API Explorer中调试该接口。

URI

POST /v2/{project_id}/fgs/functions

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户Project ID。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

func_name

String

函数名称。

handler

String

函数执行入口。

memory_size

Long

函数内存,单位M。

枚举值:

  • 128

  • 256

  • 512

  • 768

  • 1024

  • 1280

  • 1536

  • 1792

  • 2048

  • 2560

  • 3072

  • 3584

  • 4096

timeout

Long

函数运行超时时间,单位秒,范围3~900秒。

runtime

String

FunctionGraph函数的执行环境 支持Node.js6.10、Python2.7、Python3.6、Java8、Go1.8、Node.js 8.10、C#.NET Core 2.0、C#.NET Core 2.1、PHP7.3。 Python2.7: Python语言2.7版本。 Python3.6: Pyton语言3.6版本。 Go1.8: Go语言1.8版本。 Java8: Java语言8版本。 Node.js6.10: Nodejs语言6.10版本。 Node.js8.10: Nodejs语言8.10版本。 C#(.NET Core 2.0): C#语言2.0版本。 C#(.NET Core 2.1): C#语言2.1版本。 C#(.NET Core 3.1): C#语言3.1版本。 Custom: 自定义运行时。 PHP7.3: Php语言7.3版本。

枚举值:

  • Python2.7

  • Python3.6

  • Go1.8

  • Go1.x

  • Java8

  • Node.js6.10

  • Node.js8.10

  • Node.js10.16

  • Node.js12.13

  • C#(.NET Core 2.0)

  • C#(.NET Core 2.1)

  • C#(.NET Core 3.1)

  • Custom

  • PHP7.3

package

String

函数应用,默认为default。

code_type

String

函数代码编辑方式。

  • inline:在线编辑,函数运行时为Node.js*,PHP7.3,Python2.7,Python3.6,Custom时支持。

  • zip:本地zip包上传,所有运行时都支持。

  • jar:本地jar包上传,函数运行时为java8时支持。

  • obs: obs上传,所有运行时都支持。

枚举值:

  • inline

  • zip

  • obs

  • jar

code_filename

String

函数文件名,前面为文件名,后面为文件类型。

func_code

FuncCode object

函数代码。

code_url

String

函数代码地址。

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

  • 当“code_type”为“inline”、“zip”或“jar”时,该字段为空。

description

String

函数的描述。

user_data

String

用户自定义的name/value信息。

xrole

String

函数使用的权限委托名称,用户可以在IAM中创建委托。当函数需要访问其他服务时,必须提供该字段。

enterprise_project_id

String

企业项目ID。企业项目租户创建函数时,该参数为必填项,普通租户可以不填。

app_xrole

String

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

initializer_handler

String

函数初始化入口,规则:xx.xx,必须包含“. ”。 举例:对于node.js函数:myfunction.initializer,则表示函数的文件名为myfunction.js,初始化的入口函数名为initializer。

initializer_timeout

Long

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

type

String

函数版本 v2:新版本函数

枚举值:

  • v1

  • v2

表3 FuncCode

参数

是否必选

参数类型

描述

file

String

函数代码。

  • 当“code_type”为“inline”时,必选,代码需进行base64编码。

  • 当“code_type”为“zip”时,必选,需把代码打包成zip格式再进行base64编码。

  • 当“code_type”为“jar”时,必选,需把代码打包成jar格式再进行base64编码。

  • 当“code_type”为“obs”时,可选。

link

String

函数代码。

  • 当“code_type”为“obs”时,代表代码在obs中的链接地址。

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

func_urn

String

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

func_name

String

函数名字。

domain_id

String

租户域名ID。

namespace

String

租户项目ID。

project_name

String

项目名。

package

String

应用名。

runtime

String

FunctionGraph函数的执行环境 支持Node.js6.10、Python2.7、Python3.6、Java8、Go1.8、Node.js 8.10、C#.NET Core 2.0、C#.NET Core 2.1、PHP7.3。 Python2.7: Python语言2.7版本。 Python3.6: Pyton语言3.6版本。 Go1.8: Go语言1.8版本。 Java8: Java语言8版本。 Node.js6.10: Nodejs语言6.10版本。 Node.js8.10: Nodejs语言8.10版本。 C#(.NET Core 2.0): C#语言2.0版本。 C#(.NET Core 2.1): C#语言2.1版本。 C#(.NET Core 3.1): C#语言3.1版本。 Custom: 自定义运行时。 PHP7.3: Php语言7.3版本。

枚举值:

  • Python2.7

  • Python3.6

  • Go1.8

  • Go1.x

  • Java8

  • Node.js6.10

  • Node.js8.10

  • Node.js10.16

  • Node.js12.13

  • C#(.NET Core 2.0)

  • C#(.NET Core 2.1)

  • C#(.NET Core 3.1)

  • Custom

  • PHP7.3

timeout

Long

函数超时时间单位秒。

最小值:3

最大值:900

handler

String

处理函数名。

memory_size

Long

函数执行内存单位MB。

最小值:128

cpu

Long

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

code_type

String

代码类型。

  • inline:在线编辑,函数运行时为Node.js*,PHP7.3,Python2.7,Python3.6,Custom时支持。

  • zip:本地zip包上传,所有运行时都支持。

  • jar:本地jar包上传,函数运行时为java8时支持。

  • obs: obs上传,所有运行时都支持。

枚举值:

  • inline

  • zip

  • obs

  • jar

code_url

String

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

code_filename

String

函数的文件名

  • 当“code_type”为“zip”或“jar”时,必须提供该字段。

  • 当“code_type”为“obs”或“inline”,不需要提供该字段。

code_size

Long

函数代码大小单位KB。

user_data

String

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

encrypted_user_data

String

用户自定义的name/value信息,用于需要加密的配置。

digest

String

函数hash唯一值。

version

String

函数版本。

image_name

String

内部使用版本唯一值。

xrole

String

函数使用的权限委托名称,用户可以在IAM中创建委托。当函数需要访问其他服务时,必须提供该字段。

app_xrole

String

函数使用的权限委托名称,用户可以在IAM中创建委托。当函数需要访问其他服务时,必须提供该字段。

description

String

函数描述。

last_modified

String

最新更新时间。

depend_list

Array of strings

依赖包列表。

strategy_config

StrategyConfig object

函数策略配置。

extend_config

String

函数扩展配置。

initializer_handler

String

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

initializer_timeout

Integer

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

func_vpc

FuncVpc object

VPC配置。

mount_config

MountConfig object

v2版本的函数版本列表。

enterprise_project_id

String

企业项目ID

表5 StrategyConfig

参数

参数类型

描述

concurrency

Long

  • 0:函数被禁用。

  • -1:函数被启用。

枚举值:

  • 0

  • -1

concurrent_num

Integer

函数并发数

表6 FuncVpc

参数

参数类型

描述

vpc_name

String

虚拟私有云名称。

vpc_id

String

虚拟私有云唯一标识。

subnet_name

String

子网名称。

subnet_id

String

子网网络ID。

cidr

String

子网掩码。

gateway

String

网关。

表7 MountConfig

参数

参数类型

描述

mount_user

MountUser object

磁盘挂载用户配置。

func_mounts

Array of FuncMounts objects

磁盘挂载函数配置。

表8 MountUser

参数

参数类型

描述

user_id

Integer

挂载用户ID,默认为-1。

缺省值:-1

user_group_id

Integer

挂载用户组ID,默认为-1。

缺省值:-1

表9 FuncMounts

参数

参数类型

描述

mount_type

String

挂载类型(sfs/sfsTurbo/ecs)。

mount_resource

String

挂载资源ID(对应云服务ID)。

mount_share_path

String

远端挂载路径(例如192.168.0.12:/data)。

local_mount_path

String

函数访问路径。

状态码: 409

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

POST https://{functiongraph_endpoint}/v2/7aad83af3e8d42e99ac194e8419e2c9b/fgs/functions

{
  "func_name" : "test_v1_2",
  "handler" : "index.handler",
  "memory_size" : 128,
  "timeout" : 3,
  "runtime" : "Node.js6.10",
  "package" : "default",
  "code_type" : "inline",
  "code_filename" : "index.zip",
  "enterprise_project_id" : "46b6f338fc3445b8846c71dfb1fbxxxx",
  "func_code" : {
    "file" : "UEsDBAoAAAAAAHYLfU2fZFKzsAAAALAAAAAIAAAAaW5kZXguanNleHBvcnRzLmhhbmRsZXIgPSBmdW5jdGlvbiAoZXZlbnQsIGNvbnRleHQsIGNhbGxiYWNrKSB7DQogICAgY29uc3QgZXJyb3IgPSBudWxsOw0KICAgIGNvbnN0IG91dHB1dCA9IGBIZWxsbyBtZXNzYWdlOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gOw0KICAgIGNhbGxiYWNrKGVycm9yLCBvdXRwdXQpOw0KfVBLAQIeAwoAAAAAAHYLfU2fZFKzsAAAALAAAAAIAAAAAAAAAAAAAAC0gQAAAABpbmRleC5qc1BLBQYAAAAAAQABADYAAADWAAAAAAA="
  }
}

响应示例

状态码: 200

OK

{
  "func_urn" : "urn:fss:cn-north-7:46b6f338fc3445b8846c71dfb1fbd9e8:function:default:test_v1_2",
  "func_name" : "test_v1_2",
  "domain_id" : "14ee2e35****a7998b******aa24cabf",
  "namespace" : "46b6f338fc3445b8846c71dfb1fbd9e8",
  "project_name" : "cn-north-7",
  "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-25T15:37:27+08:00",
  "strategy_config" : {
    "concurrency" : -1
  },
  "enterprise_project_id" : "46b6f338fc3445b8846c71dfb1fbxxxx"
}

状态码: 409

Conflict

{
  "error_code" : "FSS.1061",
  "error_msg" : "The function has existed"
}

状态码

状态码

描述

200

OK

409

Conflict

错误码

请参见错误码

分享:

    相关文档

    相关产品

close