All Products
Search
Document Center

Function Compute (2.0):CreateFunction

Last Updated:Mar 03, 2024

Creates a function.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer.

Authorization information

There is currently no authorization information disclosed in the API.

Request syntax

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

Request parameters

ParameterTypeRequiredDescriptionExample
serviceNamestringYes

The name of the service.

serviceName
X-Fc-Account-IdstringNo

The ID of your Alibaba Cloud account.

188077086902****
functionobjectNo

The definition of the function.

codeCodeNo

The ZIP package of function code. Set the value to code or customContainerConfig.

customContainerConfigCustomContainerConfigNo

The configuration of the Custom Container runtime. After you configure the Custom Container runtime, Function Compute can run the function in a container created from a custom image. Set the value to code or customContainerConfig.

layersarrayNo

A list of layers.

Note Multiple layers are merged based on the order of array subscripts. The content of a layer with a smaller subscript overwrites the file that has the same name of a layer with a larger subscript.
stringNo

The ARN of the layer. The format is acs:fc:{region}:{accountID}:layers/{layerName}/versions/{layerVersion}.

layerName
descriptionstringNo

The description of the function.

function-description
functionNamestringYes

The name of the function. It can contain letters, digits, underscores (_), and hyphens (-). It cannot start with a digit or hyphen (-). It must be 1 to 64 characters in length.

functionName
handlerstringYes

The handler of the function. The format varies based on the programming language. For more information, see Function handlers.

index.handler
initializationTimeoutintegerNo

The timeout period for the Initializer hook. Default value: 3. Unit: seconds. The value of this parameter ranges from 1 to 300. When this period expires, the execution of the Initializer hook is terminated.

60
initializerstringNo

The handler of the Initializer hook. For more information, see Initializer hooks.

index.initializer
memorySizeintegerNo

The memory capacity for the function. Unit: MB. The memory capacity must be a multiple of 64 MB. The memory size varies based on the function instance type you use. For more information, see the "Instance types" section of the Instance types and usage modes topic.

512
runtimestringYes

The runtime of the function. Valid values: 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, and custom-container. For more information, see Runtimes that are supported by Function Compute.

python3.9
timeoutintegerNo

The timeout period for function execution. Unit: seconds. Minimum value: 1. Default value: 3. When this period is elapsed, function execution is terminated.

60
caPortintegerNo

The port on which the HTTP server listens for the custom runtime or Custom Container runtime.

9000
environmentVariablesobjectNo

The environment variables that you configured for the function. You can obtain the values of the environment variables from the function. For more information, see Environment variables.

stringNo

The configurations of environment variables.

{"key":"value"}
instanceConcurrencyintegerNo

The number of requests that can be concurrently processed by a single instance.

10
instanceSoftConcurrencyintegerNo

The soft concurrency of the instance. You can use this property to implement graceful scale-ups for instances. If the number of concurrent requests on an instance is greater than the value of soft concurrency, an instance scale out is triggered. For example, if your instance requires a long time to start, you can specify a proper soft concurrency to start the instance in advance.

The value must be less than or equal to that of instanceConcurrency.

5
instanceTypestringNo

The instance type of the function. Valid values:

  • e1: elastic instance
  • c1: performance instance
  • fc.gpu.tesla. 1 :GPU-accelerated instances (Tesla T4)
  • fc.gpu.ampere. 1 :GPU-accelerated instances (Ampere A10)
  • g1: same as fc.gpu.tesla.1

Default value: e1

e1
customRuntimeConfigCustomRuntimeConfigNo

The configurations of the function that runs in the custom runtime.

instanceLifecycleConfigInstanceLifecycleConfigNo

The lifecycle configurations of instances.

customDNSCustomDNSNo

The custom Domain Name System (DNS) settings of the function.

customHealthCheckConfigCustomHealthCheckConfigNo

The custom health check configurations of the function. This parameter is applicable only to custom runtimes and Custom Container runtimes.

cpufloatNo

The CPU size of the function. Unit: vCPUs. The value is a multiple of 0.05 vCPUs.

1.5
diskSizeintegerNo

The disk size of the function. Unit: MB. Valid values: 512 MB and 10240 MB.

512
gpuMemorySizeintegerNo

The GPU memory size of the function. Unit: MB, which is a multiple of 1024MB.

2048
X-Fc-Code-ChecksumstringNo

The CRC-64 value of the function code package.

1506052139770049xxxx
X-Fc-DatestringNo

The time on which the function is invoked. The format of the value is: EEE,d MMM yyyy HH:mm:ss GMT.

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

The trace ID of the request. The value is the same as that of the requestId parameter in the response.

test-trace-id

Response parameters

ParameterTypeDescriptionExample
headersobject
ETagstring

The ETag that is used to modify the function. The value is used to ensure that the modified function is consistent with the function that is expected to be modified.

738136ea26b79cee660862cd7628****
object

The returned data.

codeChecksumstring

The CRC-64 value of the function code package.

5434025278388143772
codeSizelong

The size of the function code package that is returned by the system. Unit: bytes.

1024
createdTimestring

The time when the function was created.

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

The configurations of the custom container runtime. After you configure the custom container runtime, Function Compute can execute the function in a container created from a custom image.

layersarray

An array that consists of the information of layers.

Note If multiple layers exist, the layers are merged based on the array subscripts in descending order. The content of a layer with a smaller subscript overwrites that of a larger subscript.
string

The name of the layer.

md5#layername#version
descriptionstring

The description of the function.

This is a demo hello world function
functionIdstring

The unique ID that is generated by the system for the function.

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

The name of the function.

demo-function
handlerstring

The handler of the function.

index.handler
lastModifiedTimestring

The time when the function was last modified.

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

The memory size that is configured for the function. Unit: MB.

512
runtimestring

The runtime environment of the function. Valid values: 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, and custom-container. For more information, see Supported function runtime environments.

python3.9
timeoutinteger

The timeout period for the execution of the function. Unit: seconds. Default value: 60. Valid values: 1 to 600. When this period expires, the execution of the function is terminated.

10
initializationTimeoutinteger

The timeout period for the execution of the Initializer hook. Unit: seconds. Default value: 3. Minimum value: 1. When the period ends, the execution of the Initializer hook is terminated.

60
initializerstring

The handler of the Initializer hook. The format is determined by the programming language.

index.handler
caPortinteger

The port on which the HTTP server listens for the custom runtime or custom container runtime.

9000
environmentVariablesobject

The environment variables that are configured for the function. You can obtain the values of the environment variables from the function. For more information, see Environment variables.

string

The environment variables that you configured for the function.

{"key":"value"}
instanceConcurrencyinteger

The number of requests that can be concurrently processed by a single instance.

10
instanceSoftConcurrencyinteger

The soft concurrency of the instance. You can use this parameter to implement graceful scale-up of instances. If the number of concurrent requests on an instance is greater than the value of soft concurrency, an instance scale-up is triggered. For example, if your instance requires a long time to start, you can specify a suitable soft concurrency to start the instance in advance.

The value must be less than or equal to that of the instanceConcurrency parameter.

5
instanceTypestring

The instance type of the function. Valid values:

  • e1: elastic instance
  • c1: performance instance
  • fc.gpu.tesla.1: GPU-accelerated instance (Tesla T4)
  • fc.gpu.ampere.1: GPU-accelerated instance (Ampere A10)
  • g1: same as fc.gpu.tesla.1
e1
instanceLifecycleConfigInstanceLifecycleConfig

The lifecycle configurations of the instance.

customDNSCustomDNS

The custom DNS configurations of the function.

customRuntimeConfigCustomRuntimeConfig

The configurations of the custom runtime.

customHealthCheckConfigCustomHealthCheckConfig

The custom health check configuration of the function. This parameter is applicable only to custom runtimes and custom containers.

cpufloat

The number of vCPUs of the function. The value is a multiple of 0.05.

1.5
diskSizeinteger

The disk size of the function. Unit: MB. Valid values: 512 and 10240.

512
gpuMemorySizeinteger

The GPU memory capacity for the function. Unit: MB. The value is a multiple of 1,024.

2048
layersArnV2array

ARN list of layers

string

The layer resource locator.

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

Examples

Sample success responses

JSONformat

{
  "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"
  ]
}

Error codes

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
2023-07-27The response structure of the API has changedsee changesets
Change itemChange content
Output ParametersThe response structure of the API has changed.
2023-07-27The response structure of the API has changedsee changesets
Change itemChange content
Output ParametersThe response structure of the API has changed.
2023-06-29The response structure of the API has changedsee changesets
Change itemChange content
Output ParametersThe response structure of the API has changed.
2021-06-29The internal configuration of the API is changed, but the call is not affectedsee changesets
Change itemChange content
The internal configuration of the API is changed, but the call is not affected.
2021-06-29The request parameters of the API has changedsee changesets
Change itemChange content
Input ParametersThe request parameters of the API has changed.
    Added Input Parameters: X-Fc-Account-Id
    Added Input Parameters: X-Fc-Code-Checksum
    Added Input Parameters: X-Fc-Log-Type
    Added Input Parameters: X-Fc-Invocation-Type
    Added Input Parameters: X-Fc-Date
    Added Input Parameters: X-Fc-Trace-Id
2021-06-29The request parameters of the API has changed. The response structure of the API has changedsee changesets
Change itemChange content
Input ParametersThe request parameters of the API has changed.
    Added Input Parameters: X-Fc-Account-Id
Output ParametersThe response structure of the API has changed.
2021-06-29The request parameters of the API has changed. The response structure of the API has changedsee changesets
Change itemChange content
Input ParametersThe request parameters of the API has changed.
    delete Input Parameters: X-Fc-Account-Id
Output ParametersThe response structure of the API has changed.