All Products
Search
Document Center

Function Compute:CreateFunction

Last Updated:Apr 10, 2023

Creates a function.

Authorization information

There is currently no authorization information disclosed in the API.

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 code of the function. The code must be packaged into a ZIP file. Choose code or customContainerConfig for the function.

customContainerConfigCustomContainerConfigNo

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. Choose code or customContainerConfig for the function.

layersarrayNo

The information about layers.

NoteMultiple 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 as a layer with a larger subscript.
stringNo

The name of the layer.

layerName
descriptionstringNo

The description of the function.

function-description
functionNamestringYes

The name of the function. The name can contain letters, digits, underscores (_), and hyphens (-) only. The name cannot start with a digit or a hyphen (-). The name 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 execution of the Initializer hook. Unit: seconds. Default value: 3. Valid values: 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 size for the function. Unit: MB. The value must be a multiple of 64. The memory size varies based on the function instance type. For more information, see Instance types.

512
runtimestringYes

The runtime environment of the function. Valid values: nodejs16, nodejs14, nodejs12, nodejs10, nodejs8, nodejs6, nodejs4.4, python3.9, python3, python2.7, java11, java8, go1, php7.2, dotnetcore3.1, dotnetcore2.1, custom and custom-container. For more information, see Supported function runtime environments.

python3.9
timeoutintegerNo

The timeout period for the execution of the function. Unit: seconds. Default value: 3. Minimum value: 1. When the period ends, the execution of the function 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 Overview.

stringNo

The environment variables that are configured for the function.

{"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 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
instanceTypestringNo

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
customRuntimeConfigCustomRuntimeConfigNo

The configurations of the custom runtime.

instanceLifecycleConfigInstanceLifecycleConfigNo

The lifecycle configurations of the instance.

customDNSCustomDNSNo

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

customHealthCheckConfigCustomHealthCheckConfigNo

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

cpufloatNo

The number of vCPUs of the function. The value must be a multiple of 0.05.

1.5
diskSizeintegerNo

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

512
gpuMemorySizeintegerNo

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

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.

NoteMultiple 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 as a layer with 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.9, python3, python2.7, java11, java8, go1, php7.2, dotnetcore3.1, dotnetcore2.1, 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

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
}

Error codes

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

Change history

Change timeSummary of changesOperation
2021-06-29The internal configurations of the API operation change but you can still call the operation.
Change itemChange content
The internal configurations of the API operation change but you can still call the operation.
2021-06-29The input parameters of the API operation change.
Change itemChange content
Input ParametersThe input parameters of the API operation change.
    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 input parameters of the API operation change.,The response structure of the API operation changes.
Change itemChange content
Input ParametersThe input parameters of the API operation change.
    Added Input Parameters: X-Fc-Account-Id
Output ParametersThe response structure of the API operation changes.
2021-06-29The input parameters of the API operation change.,The response structure of the API operation changes.
Change itemChange content
Input ParametersThe input parameters of the API operation change.
    delete Input Parameters: X-Fc-Account-Id
Output ParametersThe response structure of the API operation changes.