创建函数。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
请求语法
POST /2021-04-06/services/{serviceName}/functions
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
serviceName | string | 是 | 服务的名称。 | serviceName |
X-Fc-Account-Id | string | 否 | 您的阿里云账号(主账号)ID。 | 188077086902**** |
function | object | 否 | 函数的定义。 | |
code | Code | 否 | 函数代码ZIP包。code和customContainerConfig二选一。 | |
customContainerConfig | CustomContainerConfig | 否 | Custom Container运行时的相关配置,成功配置后函数可以使用自定义容器镜像执行函数。code和customContainerConfig二选一。 | |
layers | array | 否 | 层的列表。 说明多个层会按照数组下标从大到小的顺序进行合并,下标小的层的内容会覆盖下标大的层的同名文件。 | |
string | 否 | 层资源的名称。 | layerName | |
description | string | 否 | 函数的描述。 | function-description |
functionName | string | 是 | 函数的名称。只能包含字母、数字、下划线(_)和短划线(-),不能以数字、短划线(-)开头,长度范围为1~64个字符。 | functionName |
handler | string | 是 | 函数执行的入口,具体格式和语言相关。详细信息,请参见函数入口。 | index.handler |
initializationTimeout | integer | 否 | 初始化函数运行的超时时间,默认值为3秒,单位为秒。最小1秒,最大为5分钟。当初始化函数超过这个时间后,函数会被终止执行。 | 60 |
initializer | string | 否 | 初始化函数执行的入口。详细信息,请参见Initializer函数。 | index.initializer |
memorySize | integer | 否 | 函数的内存规格,单位为MB,内存大小为64 MB的倍数。不同的函数实例类型,内存规格存在差异。更多信息,请参见实例规格。 | 512 |
runtime | string | 是 | 函数运行的语言环境。目前支持nodejs16、nodejs14、nodejs12、nodejs10、nodejs8、nodejs6、nodejs4.4、python3.10、python3.9、python3、python2.7、java11、java8、go1、php7.2、dotnetcore3.1、dotnetcore2.1、custom.debian10、custom和custom-container。更多信息,请参见支持的函数运行环境列表。 | python3.9 |
timeout | integer | 否 | 函数运行的超时时间,单位为秒,最小1秒,默认3秒。函数超过这个时间后会被终止执行。 | 60 |
caPort | integer | 否 | 自定义、自定义容器运行时HTTP Server的监听端口。 | 9000 |
environmentVariables | object | 否 | 函数的环境变量,您可以在函数中通过环境变量访问环境变量。更多信息,请参见环境变量。 | |
string | 否 | 环境变量配置。 | {"key":"value"} | |
instanceConcurrency | integer | 否 | 实例最大并发度。 | 10 |
instanceSoftConcurrency | integer | 否 | 实例软并发度,用于优雅扩容。当实例上的并发数超过软并发度时,会触发实例扩容。例如,您的实例启动较慢,可以通过设置合适的软实例并发度,提前启动实例。 取值小于或等于instanceConcurrency。 | 5 |
instanceType | string | 否 | 函数的实例类型,取值如下:
| e1 |
customRuntimeConfig | CustomRuntimeConfig | 否 | Custom Runtime函数详细配置。 | |
instanceLifecycleConfig | InstanceLifecycleConfig | 否 | 实例生命周期配置。 | |
customDNS | CustomDNS | 否 | 函数自定义DNS配置。 | |
customHealthCheckConfig | CustomHealthCheckConfig | 否 | 函数自定义健康检查配置,仅适用于Custom Runtime和Custom Container。 | |
cpu | float | 否 | 函数的CPU规格,单位为vCPU,为0.05 vCPU的倍数。 | 1.5 |
diskSize | integer | 否 | 函数的磁盘规格,单位为MB,可选值为512 MB或10240 MB。 | 512 |
gpuMemorySize | integer | 否 | function的GPU显存规格,单位为MB,为1024MB的倍数 | 2048 |
X-Fc-Code-Checksum | string | 否 | 函数代码包的CRC-64值。 | 1506052139770049xxxx |
X-Fc-Date | string | 否 | 函数的调用开始日期,格式为EEE,d MMM yyyy HH:mm:ss GMT。 | Wed, 11 May 2022 09:00:00 GMT |
X-Fc-Trace-Id | string | 否 | 调用函数的ID,与返回参数requestId对应。 | test-trace-id |
返回参数
示例
正常返回示例
JSON
格式
{
"codeChecksum": "5434025278388143772",
"codeSize": 1024,
"createdTime": "2016-08-15T15:00:00.000+0000",
"customContainerConfig": {
"args": "[\"-arg1\", \"value1\"]",
"command": "[\"/code/myserver\"]",
"image": "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1",
"accelerationType": "Default",
"instanceID": "cri-xxxxxxxxxx",
"webServerMode": true
},
"layers": [
"md5#layername#version"
],
"description": "This is a demo hello world function",
"functionId": "2d28e0e9-9ba5-4eed-8b1a-d3d9cd24\n****",
"functionName": "demo-function",
"handler": "index.handler",
"lastModifiedTime": "2016-08-15T17:00:00.000+0000",
"memorySize": 512,
"runtime": "python3.9",
"timeout": 10,
"initializationTimeout": 60,
"initializer": "index.handler",
"caPort": 9000,
"environmentVariables": {
"key": "{\"key\":\"value\"}"
},
"instanceConcurrency": 10,
"instanceSoftConcurrency": 5,
"instanceType": "e1",
"instanceLifecycleConfig": {
"preFreeze": {
"handler": "index.preStop",
"timeout": 10
},
"preStop": {
"handler": "index.preStop",
"timeout": 10
}
},
"customDNS": {
"nameServers": [
"8.8.x.x"
],
"searches": [
"ns1.svc.cluster-domain.example"
],
"dnsOptions": [
{
"name": "ndots",
"value": "2"
}
]
},
"customRuntimeConfig": {
"command": [
"/code/myBootstrap"
],
"args": [
"args1"
]
},
"customHealthCheckConfig": {
"httpGetUrl": "/ready",
"initialDelaySeconds": 1,
"periodSeconds": 1,
"timeoutSeconds": 2,
"failureThreshold": 1,
"successThreshold": 2
},
"cpu": 1.5,
"diskSize": 512,
"gpuMemorySize": 2048
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2021-06-29 | API 内部配置变更,不影响调用 | |||||||||||||||
| ||||||||||||||||
2021-06-29 | OpenAPI 入参发生变更 | |||||||||||||||
| ||||||||||||||||
2021-06-29 | OpenAPI 入参发生变更,OpenAPI 返回结构发生变更 | |||||||||||||||
| ||||||||||||||||
2021-06-29 | OpenAPI 入参发生变更,OpenAPI 返回结构发生变更 | |||||||||||||||
|