Creates a function.
Debugging
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.
Operation | Access level | Resource type | Condition key | Associated operation |
---|---|---|---|---|
fc:CreateFunction | create |
|
| none |
Request syntax
POST /2021-04-06/services/{serviceName}/functions HTTP/1.1
Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
serviceName | string | Yes | The name of the service. | serviceName |
X-Fc-Account-Id | string | No | The ID of your Alibaba Cloud account. | 188077086902**** |
function | object | No | The definition of the function. | |
code | Code | No | The ZIP package of function code. Set the value to code or customContainerConfig. | |
customContainerConfig | CustomContainerConfig | No | 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. | |
layers | array | No | 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 | No | The name of the layer. The format is acs:fc:{region}:{accountID}:layers/{layerName}/versions/{layerVersion}. | layerName | |
description | string | No | The description of the function. | function-description |
functionName | string | Yes | 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 |
handler | string | Yes | The handler of the function. The format varies based on the programming language. For more information, see Function handlers. | index.handler |
initializationTimeout | integer | No | 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 |
initializer | string | No | The entry of the Initializer hook. For more information, see Initializer hooks. | index.initializer |
memorySize | integer | No | 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 |
runtime | string | Yes | 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 |
timeout | integer | No | The timeout period for function execution. Unit: seconds. Minimum value: 1. Default value: 3. When this period elapses, the function execution is terminated. | 60 |
caPort | integer | No | The port on which the HTTP server listens for the custom runtime or Custom Container runtime. | 9000 |
environmentVariables | object | No | 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. | |
string | No | The configurations of environment variables. | {"key":"value"} | |
instanceConcurrency | integer | No | The number of requests that can be concurrently processed by a single instance. | 10 |
instanceSoftConcurrency | integer | No | 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 |
instanceType | string | No | The instance type of the function. Valid values:
Default value: e1 | e1 |
customRuntimeConfig | CustomRuntimeConfig | No | The configurations of the function that runs in the custom runtime. | |
instanceLifecycleConfig | InstanceLifecycleConfig | No | The lifecycle configurations of instances. | |
customDNS | CustomDNS | No | The custom Domain Name System (DNS) settings of the function. | |
customHealthCheckConfig | CustomHealthCheckConfig | No | The custom health check configurations of the function. This parameter is applicable only to custom runtimes and Custom Container runtimes. | |
cpu | float | No | The CPU size of the function. Unit: vCPUs. The value is a multiple of 0.05 vCPUs. | 1.5 |
diskSize | integer | No | The disk size of the function. Unit: MB. Valid values: 512 MB and 10240 MB. | 512 |
gpuMemorySize | integer | No | The GPU memory size of the function. Unit: MB, which is a multiple of 1024 MB. | 2048 |
X-Fc-Code-Checksum | string | No | The CRC-64 value of the function code package. | 1506052139770049xxxx |
X-Fc-Date | string | No | 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-Id | string | No | 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
Examples
Sample success responses
JSON
format
{
"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 time | Summary of changes | Operation |
---|---|---|
2023-07-27 | The response structure of the API has changed | View Change Details |
2023-07-27 | The response structure of the API has changed | View Change Details |
2023-06-29 | The response structure of the API has changed | View Change Details |
2021-06-29 | The internal configuration of the API is changed, but the call is not affected | View Change Details |
2021-06-29 | The request parameters of the API has changed | View Change Details |
2021-06-29 | The request parameters of the API has changed. The response structure of the API has changed | View Change Details |
2021-06-29 | The request parameters of the API has changed. The response structure of the API has changed | View Change Details |