CreateFunction - 创建函数

创建函数。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
fc:CreateFunctioncreate
  • 全部资源
    *

请求语法

POST /2021-04-06/services/{serviceName}/functions HTTP/1.1

请求参数

名称类型必填描述示例值
serviceNamestring

服务的名称。

serviceName
X-Fc-Account-Idstring

您的阿里云账号(主账号)ID。

188077086902****
functionobject

函数的定义。

codeCode

函数代码 ZIP 包。codecustomContainerConfig 二选一。

customContainerConfigCustomContainerConfig

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

layersarray

层的列表。

说明 多个层会按照数组下标从大到小的顺序进行合并,下标小的层的内容会覆盖下标大的层的同名文件。
string

层资源的名称。格式为 acs:fc:{region}:{accountID}:layers/{layerName}/versions/{layerVersion}。

layerName
descriptionstring

函数的描述。

function-description
functionNamestring

函数的名称。只能包含字母、数字、下划线(_)和短划线(-),不能以数字、短划线(-)开头,长度范围为 1~64 个字符。

functionName
handlerstring

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

index.handler
initializationTimeoutinteger

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

60
initializerstring

初始化函数执行的入口。详细信息,请参见 Initializer 函数

index.initializer
memorySizeinteger

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

512
runtimestring

函数运行的语言环境。目前支持 nodejs20nodejs18nodejs20nodejs18nodejs16nodejs14nodejs12nodejs10nodejs8nodejs6nodejs4.4python3.10python3.9python3python2.7java11java8go1php7.2dotnetcore3.1dotnetcore2.1custom.debian10customcustom-container。更多信息,请参见支持的函数运行环境列表

python3.9
timeoutinteger

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

60
caPortinteger

自定义、自定义容器运行时 HTTP Server 的监听端口。

9000
environmentVariablesobject

函数的环境变量,您可以在函数中通过环境变量访问环境变量。更多信息,请参见环境变量

string

环境变量配置。

{"key":"value"}
instanceConcurrencyinteger

实例最大并发度。

10
instanceSoftConcurrencyinteger

实例软并发度,用于优雅扩容。当实例上的并发数超过软并发度时,会触发实例扩容。例如,您的实例启动较慢,可以通过设置合适的软实例并发度,提前启动实例。

取值小于或等于 instanceConcurrency

5
instanceTypestring

函数的实例类型,取值如下:

  • e1:弹性实例。
  • c1:性能实例。
  • fc.gpu.tesla.1:GPU Tesla 系列实例类型。
  • fc.gpu.ampere.1:GPU Ampere 系列实例类型。
  • fc.gpu.ada.1:GPU Ada 系列实例类型。
  • g1:同 fc.gpu.tesla.1

默认值:e1

e1
customRuntimeConfigCustomRuntimeConfig

Custom Runtime 函数详细配置。

instanceLifecycleConfigInstanceLifecycleConfig

实例生命周期配置。

customDNSCustomDNS

函数自定义 DNS 配置。

customHealthCheckConfigCustomHealthCheckConfig

函数自定义健康检查配置,仅适用于 Custom Runtime 和 Custom Container。

cpufloat

函数的 CPU 规格,单位为 vCPU,为 0.05 vCPU 的倍数。

1.5
diskSizeinteger

函数的磁盘规格,单位为 MB,可选值为 512 MB 或 10240 MB。

512
gpuMemorySizeinteger

function 的 GPU 显存规格,单位为 MB,为 1024MB 的倍数

2048
X-Fc-Code-Checksumstring

函数代码包的 CRC-64 值。

1506052139770049xxxx
X-Fc-Datestring

函数的调用开始日期,格式为EEE,d MMM yyyy HH:mm:ss GMT

Wed, 11 May 2022 09:00:00 GMT
X-Fc-Trace-Idstring

调用函数的 ID,与返回参数 requestId 对应。

test-trace-id

返回参数

名称类型描述示例值
headersobject
ETagstring

用于更改函数 ETag,以确保实际更改的函数和期望更改的函数是一致的。

738136ea26b79cee660862cd7628****
object

创建函数的返回值。

codeChecksumstring

函数代码包的 CRC64 值。

5434025278388143772
codeSizelong

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

1024
createdTimestring

函数的创建时间。

2016-08-15T15:00:00.000+0000
customContainerConfigCustomContainerConfig

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

layersarray

层的列表。

说明 多个层会按照数组下标从大到小的顺序进行合并,下标小的层的内容会覆盖下标大的层的同名文件。
layerstring

层资源的名称。

md5#layername#version
descriptionstring

函数描述。

This is a demo hello world function
functionIdstring

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

2d28e0e9-9ba5-4eed-8b1a-d3d9cd24 ****
functionNamestring

函数名称。

demo-function
handlerstring

函数的执行入口。

index.handler
lastModifiedTimestring

函数上次修改时间。

2016-08-15T17:00:00.000+0000
memorySizeinteger

函数设置的内存大小,单位为 MB。

512
runtimestring

函数运行的语言环境。目前支持 nodejs20nodejs18nodejs20nodejs18nodejs16nodejs14nodejs12nodejs10nodejs8nodejs6nodejs4.4python3.10python3.9python3python2.7java11java8go1php7.2dotnetcore3.1dotnetcore2.1custom.debian10customcustom-container。更多信息,请参见支持的函数运行环境列表

python3.9
timeoutinteger

函数运行的超时时间,单位为秒,默认 60 秒。最小 1 秒,最长 10 分钟。如果函数运行超过设置的时间,函数运行将被终止。

10
initializationTimeoutinteger

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

60
initializerstring

初始化函数执行的入口,具体格式和语言相关。

index.handler
caPortinteger

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

9000
environmentVariablesobject

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

string

环境变量配置。

{"key":"value"}
instanceConcurrencyinteger

单个函数实例允许的最大并发度。

10
instanceSoftConcurrencyinteger

实例软并发度,用于优雅扩容。当实例上的并发数超过软并发度时,会触发实例扩容。例如,您的实例启动较慢,可以通过设置合适的软实例并发度,提前启动实例。

取值小于或等于 instanceConcurrency

5
instanceTypestring

函数的实例类型,取值如下:

  • e1:弹性实例。
  • c1:性能实例。
  • fc.gpu.tesla.1:GPU Tesla 系列实例类型。
  • fc.gpu.ampere.1:GPU Ampere 系列实例类型。
  • fc.gpu.ada.1:GPU Ada 系列实例类型。
  • g1:同 fc.gpu.tesla.1
e1
instanceLifecycleConfigInstanceLifecycleConfig

实例生命周期配置。

customDNSCustomDNS

函数自定义 DNS 配置。

customRuntimeConfigCustomRuntimeConfig

Custom Runtime 函数详细配置。

customHealthCheckConfigCustomHealthCheckConfig

函数自定义健康检查配置,仅适用于 Custom Runtime 和 Custom Container。

cpufloat

函数的 CPU 规格,单位为 vCPU,为 0.05 vCPU 的倍数。

1.5
diskSizeinteger

函数的磁盘规格,单位为 MB,可选值为 512 MB 或 10240 MB。

512
gpuMemorySizeinteger

function 的 GPU 显存规格,单位为 MB,为 1024MB 的倍数

2048
layersArnV2array

层的 arn 列表

layerstring

层资源定位符

acs:fc:cn-hangzhou:official:layers/Python310/versions/2

示例

正常返回示例

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-27OpenAPI 返回结构发生变更查看变更详情
2023-07-27OpenAPI 返回结构发生变更查看变更详情
2023-06-29OpenAPI 返回结构发生变更查看变更详情
2021-06-29API 内部配置变更,不影响调用查看变更详情
2021-06-29OpenAPI 入参发生变更查看变更详情
2021-06-29OpenAPI 入参发生变更、OpenAPI 返回结构发生变更查看变更详情
2021-06-29OpenAPI 入参发生变更、OpenAPI 返回结构发生变更查看变更详情