创建函数。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
fc:CreateFunction | create | *全部资源 * |
| 无 |
请求语法
POST /2021-04-06/services/{serviceName}/functions HTTP/1.1
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
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 | 否 | 层资源的名称。格式为 acs:fc:{region}:{accountID}:layers/{layerName}/versions/{layerVersion}。 | 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 | 是 | 函数运行的语言环境。目前支持 nodejs20、nodejs18、nodejs20、nodejs18、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 | 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,
"layersArnV2": [
"acs:fc:cn-hangzhou:official:layers/Python310/versions/2"
]
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2023-07-27 | OpenAPI 返回结构发生变更 | 查看变更详情 |
2023-07-27 | OpenAPI 返回结构发生变更 | 查看变更详情 |
2023-06-29 | OpenAPI 返回结构发生变更 | 查看变更详情 |
2021-06-29 | API 内部配置变更,不影响调用 | 查看变更详情 |
2021-06-29 | OpenAPI 入参发生变更 | 查看变更详情 |
2021-06-29 | OpenAPI 入参发生变更、OpenAPI 返回结构发生变更 | 查看变更详情 |
2021-06-29 | OpenAPI 入参发生变更、OpenAPI 返回结构发生变更 | 查看变更详情 |