调用CreateFunction接口创建函数。
请求头
该接口使用公共请求头和特殊请求头。本文已列出特殊请求头,公共请求头,请参见公共参数。
名称 | 类型 | 是否必选 | 示例 | 描述 |
---|---|---|---|---|
X-Fc-Code-Checksum | String | 否 | 543402527838814**** | 函数代码包的CRC-64值。 |
请求语法
POST /services/{serviceName}/functions HTTP/1.1
请求参数
名称 | 类型 | 位置 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|---|
serviceName | String | Path | 是 | service_name | 服务的名称。服务名称只能包含字母、数字、下划线(_)和短划线(-),不能以数字、短划线(-)开头,长度为1~128个字符。 |
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 | 函数的名称。 函数名称只能包含字母、数字、下划线(_)和短划线(-),不能以数字、短划线(-)开头,长度为1~64个字符。 |
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 | 函数运行的语言环境,支持nodejs14、nodejs12、nodejs10、nodejs8、nodejs6、nodejs4.4、python3、python2.7、java11、java8、go1、php7.2、dotnetcore2.1、custom和custom-container。更多信息,请参见支持的函数运行环境列表。 |
timeout | Integer | Body | 否 | 60 | 函数运行的超时时间,单位为秒,默认60秒。最小1秒,最长86400秒。函数超过这个时间后会被终止执行。 |
caPort | Integer | Body | 否 | 9000 | Custom Runtime或Custom Container运行时HTTP Server的监听端口。 |
Code支持两种方式提供函数代码包,在一次请求中必须且只能使用其中一种:
- 指定存储代码包的ossBucketName和ossObjectName。
- 指定zipFile为ZIP包的Base64编码内容。
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
ETag | String | 738136ea26b79cee660862cd7628**** | 确保实际修改的函数和期望修改的函数是一致的。 |
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 | fc46822c-0fb9-4c15-b898-bace828a**** | 系统为每个函数生成的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 | 函数运行的语言环境,支持nodejs14、nodejs12、nodejs10、nodejs8、nodejs6、nodejs4.4、python3、python2.7、java11、java8、go1、php7.2、dotnetcore2.1、custom和custom-container。更多信息,请参见支持的函数运行环境列表。 |
timeout | Integer | 60 | 函数运行的超时时间,单位为秒,默认60秒。最小1秒,最长86400秒。函数超过这个时间后会被终止执行。 |
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
Host:fc-ram.aliyuncs.com
X-Fc-Code-Checksum:543402527838814****
Content-Type:application/json
{
"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-xxxxxxxx"
},
"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-xxxxxxxx"
},
"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
}