调用CreateFunction接口创建函数。

请求头

该接口使用公共请求头和特殊请求头。本文已列出特殊请求头,公共请求头,请参见公共参数

名称 类型 是否必选 示例 描述
X-Fc-Code-Checksum String 543402527838814****

函数代码包的CRC-64值。

请求语法

POST /services/{serviceName}/functions HTTP/1.1

请求参数

名称 类型 位置 是否必选 示例值 描述
serviceName String Path service_name

服务的名称。

Object Body

函数的定义。

code Code Body

指定Code ZIP包。

customContainerConfig CustomContainerConfig Body

Custom Container运行时的相关配置,配置后函数可以使用自定义容器镜像执行函数。

layers Array of String Body 02f81d283888f5ec63442a88fe82b260#Layer-name#1

层资源的名称。

description String Body test_description

函数的描述。

functionName String Body function_name

函数的名称。

handler String Body index.handler

函数执行的入口,具体格式和语言相关,更多信息,请参见函数入口

initializationTimeout Integer Body 30

初始化函数运行的超时时间,单位为秒,默认3秒。最小1秒,最长5分钟。初始化函数超过这个时间后会被终止执行。

initializer String Body index.initializer

初始化函数执行的入口,具体格式与语言相关,更多信息,请参见Initializer函数

memorySize Integer Body 256

函数的内存规格,单位为MB,内存大小为64 MB的倍数。不同的函数实例类型,内存规格存在差异,具体信息,请参见实例规格

runtime String Body python3

函数运行的语言环境。当前支持nodejs6nodejs8nodejs10nodejs12python2.7python3java8java11php7.2dotnetcore2.1custom runtimecustom container

timeout Integer Body 60

函数运行的超时时间,单位为秒,默认60秒。最小1秒,最长10分钟。函数超过这个时间后会被终止执行。

caPort Integer Body 9000

Custom Runtime或Custom Container运行时HTTP Server的监听端口。

Code支持两种方式提供函数代码包,在一次请求中必须且只能使用其中一种:

  • 指定存储代码包的ossBucketName和ossObjectName。
  • 指定zipFile为ZIP包的Base64编码内容。

返回数据

名称 类型 示例值 描述
ETag String function_name

确保实际修改的函数和期望修改的函数是一致的。

codeChecksum String 2825179536350****

函数代码包的CRC-64值。

codeSize Long 421

系统返回的函数的代码包大小,单位为Byte。

createdTime String 2020-04-01T08:15:27Z

函数的创建时间。

customContainerConfig CustomContainerConfig

Custom Container运行时的相关配置,配置后函数可以使用自定义容器镜像执行函数。

layers Array of String 02f81d283888f5ec63442a88fe82b260#Layer-name#1

层资源的名称。

description String test_description

函数的描述。

environmentVariables Map

为函数设置的环境变量,可以在函数中获取环境变量的值。更多信息,请参见环境变量简介

functionId String aa715851-1c20-4b89-a8fb-***

系统为每个函数生成的ID,全网唯一。

functionName String function_name

函数的名称。

handler String index.handler

函数执行的入口,具体格式和语言相关,更多信息,请参见函数入口

lastModifiedTime Long 2020-04-01T08:15:27Z

函数上一次被更新的时间。

memorySize Integer 256

函数的内存规格,单位为MB,内存大小为64 MB的倍数。不同的函数实例类型,函数执行内存存在差异,具体信息,请参见实例规格

runtime String python3

函数运行的语言环境。当前支持 nodejs6nodejs8nodejs10nodejs12python2.7python3java8java11php7.2dotnetcore2.1custom runtimecustom container

timeout Integer 60

函数运行的超时时间,单位为秒,默认60秒。最小1秒,最长10分钟。函数超过这个时间后会被终止执行。

initializationTimeout Integer 60

初始化函数运行的超时时间,单位为秒,默认3秒。最小1秒,最长5分钟。初始化函数超过这个时间后会被终止执行。

initializer String index.handler

初始化函数执行的入口,具体格式与语言相关,更多信息,请参见Initializer函数

caPort Integer 9000

Custom Runtime或Custom Container运行时HTTP Server的监听端口。

示例

请求示例

POST /services/service_name/functions HTTP/1.1
公共请求头
{
  "code" : {
    "ossBucketName" : "demo-bucket",
    "ossObjectName" : "demo-key",
    "zipFile" : "cHJpbnQoImhlbGxvIHdvcmxkIikK"
  },
  "customContainerConfig" : {
    "args" : "[\"-arg1\", \"value1\"]",
    "command" : "[\"/code/myserver\"]",
    "image" : "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1",
    "accelerationType" : "Default",
    "instanceID" : "cri-xxxxxx"
  },
  "layers" : [ "02f81d283888f5ec63442a88fe82b260#Layer-name#1" ],
  "description" : "test_description",
  "functionName" : "function_name",
  "handler" : "index.handler",
  "initializationTimeout" : 30,
  "initializer" : "index.initializer",
  "memorySize" : 256,
  "runtime" : "python3",
  "timeout" : 60,
  "caPort" : 9000
}

正常返回示例

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "codeChecksum" : "2825179536350****",
  "codeSize" : 421,
  "createdTime" : "2020-04-01T08:15:27Z",
  "customContainerConfig" : {
    "args" : "[\"-arg1\", \"value1\"]",
    "command" : "[\"/code/myserver\"]",
    "image" : "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1",
    "accelerationType" : "Default",
    "instanceID" : "cri-xxxxxx"
  },
  "layers" : [ "02f81d283888f5ec63442a88fe82b260#Layer-name#1" ],
  "description" : "test_description",
  "functionId" : "aa715851-1c20-4b89-a8fb-***",
  "functionName" : "function_name",
  "handler" : "index.handler",
  "memorySize" : 256,
  "runtime" : "python3",
  "timeout" : 60,
  "initializationTimeout" : 60,
  "initializer" : "index.handler",
  "caPort" : 9000
}