Function Compute provides commonly used public layers. You can use public layers for functions without the need to configure your own layers. This topic describes how to configure a public layer for a function.
Public layers supported by Function Compute
This section lists public layers that are supported by Function Compute. If you cannot find the layer that you want to use, contact us.
The following section lists only some public layers. For more information about the public layers that Function Compute supports, see Public layers.
Custom runtimes
Layers for custom runtimes, such as Python 3.10 and Node.js 17, are included. In the table, collections of some dependency libraries are also included. For example, the public layer Python310-Package-Collection
includes commonly used Python dependency libraries.
Public layer | Compatible runtime | Description | References |
PHP81-Debian10 | Custom.Debian10 | PHP 8.1 Debian 10 runtime layer | |
PHP80-Debian10 | Custom.Debian10 | PHP 8.0 Debian 10 runtime layer | |
Nginx | Custom.Debian10 | Nginx Debian 10 runtime layer | |
Python310 |
| Python 3.10.5 runtime layer | |
Python310-Package-Collection |
| A collection of common dependency libraries for the Python 3.10 runtime | |
Python39 |
| Python 3.9.13 runtime layer | |
Python39-Package-Collection |
| A collection of common dependency libraries for the Python 3.9 runtime | |
Python38 |
| Python 3.8.13 runtime layer | |
Python38-Package-Collection |
| A collection of common dependency libraries for the Python 3.8.13 runtime | |
Python36 | Custom | Python 3.6.15 runtime layer | |
Python36-Package-Collection | Custom | A collection of common dependency libraries for the Python 3.6.15 runtime | |
Dotnet6 |
| ASP.NET 6.0.5 runtime layer | |
PHP72 | Custom | PHP 7.2 runtime layer | |
Java8 | Custom.Debian10 | Java 8 runtime layer | |
Java11 |
| Java 11 runtime layer | |
Java17 |
| Java 17 runtime layer | |
Java21 | Custom.Debian10 | Java 21 runtime layer | |
Nodejs20 | Custom.Debian10 | Node.js 20 runtime layer | |
Nodejs18 | Custom.Debian10 | Node.js 18 runtime layer | |
Nodejs17 | Custom | Node.js 17 runtime layer | |
Nodejs16 |
| Node.js 16 runtime layer | |
Nodejs14 | Custom | Node.js 14 runtime layer | |
Nodejs12 | Custom | Node.js 12 runtime layer | |
Go1 | Custom.Debian10 | Go 1 runtime layer | |
Go118 | Custom | Go 1.x runtime layer |
Common dependency libraries
Public layer | Compatible runtime | Description | Core library version | References |
Python310-OSS2 |
| oss2: Alibaba Cloud Object Storage Service (OSS) SDK for Python | - | |
Python39-OSS2 |
| oss2: OSS SDK for Python | - | |
Python310-TensorFlow2x |
| An open source machine learning framework (CPU edition) | tensorflow==2.15.0.post1 | |
Python3x-PyMongo4x |
| An open source scientific computing library | PyMongo==4.6.1 | |
Python3x-Pandas2x |
| An open source data analysis and processing tool based on NumPy |
| |
Python310-PyTorch2x |
| An open source machine learning framework (CPU edition) |
| |
Python39-Pandas1x |
| An open source data analysis and processing tool based on NumPy |
| |
Python39-SciPy1x |
| An open source scientific computing library |
| |
Python36-SciPy1x |
| An open source scientific computing library |
| |
Python39-PyTorch1x |
| An open source machine learning framework (CPU edition) |
| |
Python36-PyTorch1x |
| An open source machine learning framework (CPU edition) |
| |
Python3-Flask2x |
| A Python-based lightweight web framework | v2.2.2 | |
Nodejs-Puppeteer17x |
| A Headless Chrome tool | puppeteer-v17.1.0 | |
Nodejs-Puppeteer10x |
| A Headless Chrome tool | puppeteer-v10.2.0 | |
Python310-Opencv4x |
| A cross-platform library for computer vision. | v4.7.0.68 | |
SQLite3 |
| A lightweight and in-process relational database | 3.41.1 | |
FFmpeg6x |
| An open source software project that consists of a suite of programs used to record audio and videos, convert audio and video formats, and stream audio and video files. | 6.0 | |
Nodejs-Puppeteer19x | Custom.Debian10 | A Headless Chrome tool | puppeteer-v19.8.5 | |
Python38-Playwright | Custom.Debian10 | puppeteer-v19.8.5 | 1.31.1 | |
Poppler22x-Pdf2image | Python 3.10 | A library for rendering PDF documents | 22.12.0 | |
ServerlessDevs |
| An open source serverless platform that provides a robust set of tools for developers | 2.1.14 |
Web framework
Public layer | Compatible runtime | Core library version | References |
Python3-Flask2x |
| flask-2.2.2 |
Alibaba Cloud SDKs
Public layer | Compatible runtime | Description | References |
Python310-Aliyun-SDK |
| Common Alibaba Cloud SDKs for Python 3.10 | |
Aliyun-DataX |
| Open source edition of Alibaba Cloud DataWorks Data Integration | |
Python39-Aliyun-SDK |
| Common Alibaba Cloud SDKs for Python 3.9 | |
Python36-Aliyun-SDK |
| Common Alibaba Cloud SDKs for Python 3.6 | |
Nodejs-Aliyun-SDK |
| Common Alibaba Cloud SDKs (Node.js 20, Node.js 18, Node.js 16, and Node.js 14) |
Configure public layers in the Function Compute console
Before you start
Procedure
Log on to the Function Compute console. In the left-side navigation pane, click Services & Functions.
In the top navigation bar, select a region. On the Services page, click the desired service.
On the Functions page, find the desired function and click Configure in the Actions column.
In the Layers section, click + Add Layer and select Add Public Layer from the drop-down list.
In the Public Layer drop-down list, view the description and license information about the layers and select a public layer. In the Layer Version drop-down list, select a layer version and click Deploy.
- A function can be configured with a maximum of five layers, including custom layers and public layers.
- When multiple layers are configured for a function, the content of these layers is merged and stored in the /opt directory in reverse order. If layers contain files with the same name, the files in the first configured layer overwrites the files with the same names in the later configured layer.
Configure public layers by using Serverless Devs
Before you start
Procedure
Run the following command to list custom layers in a specified region:
s cli fc layer list --official --region cn-hangzhou
In the custom layer list that is returned, obtain and record the new ARN (
arnV2
) of the desired layer. The following sample code provides an example:- layerName: Aliyun-DataX arn: arnV2: acs:fc:cn-hangzhou:official:layers/Aliyun-DataX/versions/1 version: 1 acl: 1 description: Aliyun DataX for python (datax_v202205) compatibleRuntime: - custom - python2.7 - python3 - python3.9 - layerName: Python36-SciPy1x arn: arnV2: acs:fc:cn-hangzhou:official:layers/Python36-SciPy1x/versions/1 version: 1 acl: 1 description: SciPy Layer for python36(scipy-1.5.4,numpy-1.19.5) compatibleRuntime: - custom - python3
The following content describes the code snippets in the sample code:- layerName: the name of the layer.
- version: the version of the layer.
- arn: the original ARN of the layer. The original ARN can be used only in custom layers.
- arnV2: the new ARN of the layer. The new ARN can be used only in public layers.
- acl: the permissions of the layer. The digit 0 specifies that the layer is private and the digit 1 specifies that the layer is public. By default, the public layers are public. The custom layers can be set to private or public.
- description: the description of the layer.
- compatibleRuntime: the list of compatible runtimes.
Create the s.yaml file in any directory and enter the obtained new ARN of the layer.
Example:
edition: 1.0.0 # The YAML version, which complies with semantic versioning specification. name: fcDeployApp # The name of the project. access: "default" # The alias of the key. services: fc-deploy-test: # The name of the service. component: fc # The name of the component. props: # The attribute value of the component. region: cn-hangzhou service: name: fctest description: 'test' internetAccess: true function: name: emoji # The name of the function. description: this is a layer demo runtime: python3.9 codeUri: ./ handler: index.handler memorySize: 128 timeout: 6 layers: # The layers bound to the function. The values are layer ARNs. - acs:fc:cn-hangzhou:official:layers/Aliyun-DataX/versions/1 - acs:fc:cn-hangzhou:official:layers/Python39-SciPy1x/versions/1
Run the following command in the directory in which the s.yaml file is stored to deploy the function and configure layers for the function:
s deploy
References
You can also use API operations and SDKs to manage and configure layers. For more information, see CreateFunction and UpdateFunction.
If the error "xxx is not supported by layer" is reported when you configure a layer for a function, fix the issue by referring to What do I do if "xxx is not supported by layer" is reported when I configure a layer for a function?