All Products
Search
Document Center

Function Compute:CreateFunction

最終更新日:Nov 06, 2024

Creates a function.

Debugging

You can run this interface directly in OpenAPI Explorer, saving you the trouble of calculating signatures. After running successfully, OpenAPI Explorer can automatically generate SDK code samples.

Authorization information

The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:

  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition Key: the condition key that is defined by the cloud service.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
OperationAccess levelResource typeCondition keyAssociated operation
fc:CreateFunctioncreate
  • All Resources
    *
    none
none

Request syntax

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

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 configurations of the Custom Container runtime. After you configure the Custom Container runtime, Function Compute can run the function by using a custom container image. Set the value to code or customContainerConfig.

layersarrayNo

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.
stringNo

The name 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 entry 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. For more information, see the "Instance specifications" section of the Instance types and usage modes topic.

512
runtimestringYes

The runtime of the function. Valid values: 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, 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 elapses, the 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 instances
  • c1: performance instances
  • 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 1024 MB.

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.
layerstring

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

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 instances
  • c1: performance instances
  • fc.gpu.tesla.1: GPU-accelerated instances with Tesla series cards
  • fc.gpu.ampere.1: GPU-accelerated instances with Ampere series cards
  • fc.gpu.ada.1: GPU-accelerated instances with Ada series cards
  • 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

layerstring

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": "",
      "timeout": 0
    },
    "preStop": {
      "handler": "",
      "timeout": 0
    }
  },
  "customDNS": {
    "nameServers": [
      "8.8.8.8"
    ],
    "searches": [
      "ns1.svc.cluster-domain.example"
    ],
    "dnsOptions": [
      {
        "name": "ndots",
        "value": "2"
      }
    ]
  },
  "customRuntimeConfig": {
    "command": [
      "/code/myBootstrap"
    ],
    "args": [
      "args1"
    ]
  },
  "customHealthCheckConfig": {
    "httpGetUrl": "",
    "initialDelaySeconds": 0,
    "periodSeconds": 0,
    "timeoutSeconds": 0,
    "failureThreshold": 0,
    "successThreshold": 0
  },
  "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 changedView Change Details
2023-07-27The response structure of the API has changedView Change Details
2023-06-29The response structure of the API has changedView Change Details
2021-06-29The internal configuration of the API is changed, but the call is not affectedView Change Details
2021-06-29The request parameters of the API has changedView Change Details
2021-06-29The request parameters of the API has changed. The response structure of the API has changedView Change Details
2021-06-29The request parameters of the API has changed. The response structure of the API has changedView Change Details