Creates a function.
Request headers
This operation uses common request headers and special request headers. The following table describes the special request header. For more information about common request headers, see Common parameters.
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
X-Fc-Code-Checksum | String | No | 5434025278388143772> |
The CRC-64 value of the function code package. |
Request syntax
POST /services/{serviceName}/functions HTTP/1.1
Request parameters
Parameter | Type | Position | Required | Example | Description |
---|---|---|---|---|---|
serviceName | String | Path | Yes | service_name |
The name of the service. |
code | Code | Body | No |
The code of the function. The code must be packaged into a ZIP file. |
|
customContainerConfig | CustomContainerConfig | Body | No |
The configuration of the custom container runtime. After you configure the custom container runtime, you can use custom container images to execute functions. |
|
description | String | Body | No | test_description |
The description of the function. |
functionName | String | Body | Yes | function_name |
The name of the function. |
handler | String | Body | Yes | index.handler |
The handler of the function. The format is determined by the programming language. For more information, see the "Function entry point" section of the Terms topic. |
initializationTimeout | Integer | Body | No | 30 |
The timeout period for the execution of the initializer function. Unit: seconds. Default value: 3. Valid values: 1 to 300. When this period expires, the execution of the initializer function is terminated. |
initializer | String | Body | No | index.initializer |
The handler of the initializer function. The format is determined by the programming language. For more information, see the "Initializer function" section of the Terms topic. |
memorySize | Integer | Body | No | 256 |
The memory size for the function. Unit: MB. The memory size must be a multiple of 64 MB. Different types of instances are allocated different memory sizes. For more information, see the "Instance specifications" section of the Instance specifications and usage modes topic. |
runtime | String | Body | No | python3 |
The runtime environment of the function. Valid values: nodejs4.4, nodejs6, nodejs8, nodejs10, nodejs12, python2.7, python3, java8, java11, php7.2, dotnetcore2.1, custom, and custom-container. |
timeout | Integer | Body | No | 60 |
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. |
caPort | Integer | Body | No | 9000 |
The port on which the HTTP server listens for the custom runtime or custom container runtime. |
Function code packages can be provided in the following two methods. You must use only one of the methods in a single request.
- Specify the names of the Object Storage Service (OSS) bucket and object where the code package is stored.
- Specify that the zipFile parameter is used as the Base64-encoded content of the ZIP file.
Response parameters
Parameter | Type | Example | Description |
---|---|---|---|
ETag | String | function_name |
The value used to ensure that the modified function is consistent with the function to be modified. |
codeChecksum | String | 2825179536350**** |
The CRC-64 value of the function code package. |
codeSize | Long | 421 |
The size of the function code package. Unit: byte. |
createdTime | String | 2020-04-01T08:15:27Z |
The time when the function was created. |
customContainerConfig | CustomContainerConfig |
The configuration of the custom container runtime. After you configure the custom container runtime, you can use custom container images to execute functions. |
|
description | String | test_description |
The description of the function. |
environmentVariables | Map |
The environment variables configured for the function. The values of the environment variables are obtained from the function. For more information, see Introduction. |
|
functionId | String | aa715851-1c20-4b89-a8fb-*** |
The ID generated by the system for the function. Each function ID is unique in Function Compute. |
functionName | String | function_name |
The name of the function. |
handler | String | index.handler |
The handler of the function. The format is determined by the programming language. For more information, see the "Function entry point" section of the Terms topic. |
lastModifiedTime | Long | 2020-04-01T08:15:27Z |
The last time when the function was updated. |
memorySize | Integer | 256 |
The memory size for the function. Unit: MB. The memory size must be a multiple of 64 MB. Different types of instances are allocated different memory sizes. For more information, see the "Instance specifications" section of the Instance specifications and usage modes topic. |
runtime | String | python3 |
The runtime environment of the function. Valid values: nodejs4.4, nodejs6, nodejs8, nodejs10, nodejs12, python2.7, python3, java8, java11, php7.2, dotnetcore2.1, custom, and custom-container. |
timeout | Integer | 60 |
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. |
initializationTimeout | Integer | 60 |
The timeout period for the execution of the initializer function. Unit: seconds. Default value: 3. Valid values: 1 to 300. When this period expires, the execution of the initializer function is terminated. |
initializer | String | index.handler |
The handler of the initializer function. The format is determined by the programming language. For more information, see the "Initializer function" section of the Terms topic. |
caPort | Integer | 9000 |
The port on which the HTTP server listens for the custom runtime or custom container runtime. |
Examples
Sample requests
POST /2016-08-15/services/service_name/functions HTTP/1.1
Common request headers
{
"functionName":"function_name",
"runtime":"python3",
"handler":"index.handler",
"caPort":9000,
"customContainerConfig": {
"image": "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1,
"command": "["/code/myserver"]",
"args": "["-arg1", "value1"]",
"accelerationType": Default
},
"code":{
"zipFile":"samplecode"
},
"memorySize":256,
"timeout":60,
"initializationTimeout":30,
"environmentVariables":{
"testKey":"TEST_KEY"
}
}
Sample success responses
JSON
format
HTTP/1.1 200 OK
ETag:function_name
Content-Type:application/json
{
"functionId": "aa715851-1c20-4b89-a8fb-***",
"functionName": "function_name",
"description": "test_description",
"runtime": "python3",
"handler": "index.handler",
"timeout": 60,
"initializer": "index.handler",
"initializationTimeout": 30,
"codeSize": 421,
"caPort": 9000,
"codeChecksum": "2825179536350****",
"memorySize": 256,
"customContainerConfig": {
"image": "registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1,
"command": "["/code/myserver"]",
"args": "["-arg1", "value1"]",
"accelerationType": Default
},
"environmentVariables": {
"testKey": "TEST_KEY"
},
"createdTime": "2020-04-01T08:15:27Z",
"lastModifiedTime": "2020-04-01T08:15:27Z",
"instanceConcurrency": 1
}