函数计算提供了常用的公共层,您无需自定义层即可为您的函数配置层功能。本文介绍如何在函数中配置官方公共层。
函数计算支持的官方公共层
下方列举函数计算支持的几类官方公共层。如果您未找到您需要的层,请联系我们为您添加。
下方仅列举部分常用的官方公共层,关于更多函数计算支持的官方公共层及其说明,请参见公共层。
自定义运行时
包括自定义语言的运行时,例如Python 3.10、Node.js 17等。还包括一些自定义语言运行时的依赖库集合,例如,公共层Python310-Package-Collection
包含Python常用的一些依赖库。
公共层名称 | 兼容的运行时 | 说明 | 使用前必读 |
PHP81-Debian10 | Custom.Debian10 | PHP 8.1 Debian10运行时层 | |
PHP80-Debian10 | Custom.Debian10 | PHP 8.0 Debian10运行时层 | |
Nginx | Custom.Debian10 | Nginx Debian10运行时层 | |
Python310 |
| Python 3.10.5运行时层 | |
Python310-Package-Collection |
| Python 3.10运行时的常用依赖库集合 | |
Python39 |
| Python 3.9.13运行时层 | |
Python39-Package-Collection |
| Python 3.9运行时的常用依赖库集合 | |
Python38 |
| Python 3.8.13运行时层 | |
Python38-Package-Collection |
| Python 3.8.13运行时的常用依赖库集合 | |
Python36 | Custom | Python 3.6.15运行时层 | |
Python36-Package-Collection | Custom | Python 3.6.15的常用依赖库集合 | |
Dotnet6 |
| ASP.NET 6.0.5运行时层 | |
PHP72 | Custom | PHP 7.2运行时层 | |
Java8 | Custom.Debian10 | Java 8运行时层 | |
Java11 |
| Java 11运行时层 | |
Java17 |
| Java 17运行时层 | |
Java21 | Custom.Debian10 | Java 21运行时层 | |
Nodejs20 | Custom.Debian10 | Node.js 20运行时层 | |
Nodejs18 | Custom.Debian10 | Node.js 18运行时层 | |
Nodejs17 | Custom | Node.js 17运行时层 | |
Nodejs16 |
| Node.js 16运行时层 | |
Nodejs14 | Custom | Node.js 14运行时层 | |
Nodejs12 | Custom | Node.js 12运行时层 | |
Go1 | Custom.Debian10 | Go 1运行时层 | |
Go118 | Custom | Go 1.x运行时层 |
常用依赖库
公共层名称 | 兼容的运行时 | 说明 | 版本(只展示核心库的版本号) | 使用前必读 |
Python310-OSS2 |
| 阿里云对象存储OSS提供的Python SDK,名称为OSS2 | - | |
Python39-OSS2 |
| 阿里云对象存储OSS提供的Python SDK,名称为OSS2 | - | |
Python310-TensorFlow2x |
| 一款开源机器学习框架(CPU版) | tensorflow==2.15.0.post1 | |
Python3x-PyMongo4x |
| 一款开源的科学计算库 | PyMongo==4.6.1 | |
Python3x-Pandas2x |
| 一个基于NumPy的开源的数据分析和处理工具 |
| |
Python310-PyTorch2x |
| 一款开源机器学习框架(CPU版) |
| |
Python39-Pandas1x |
| 一个基于NumPy的开源的数据分析和处理工具 |
| |
Python39-SciPy1x |
| 一款开源的科学计算库 |
| |
Python36-SciPy1x |
| 一款开源的科学计算库 |
| |
Python39-PyTorch1x |
| 一款开源机器学习框架(CPU版) |
| |
Python36-PyTorch1x |
| 一款开源机器学习框架(CPU版) |
| |
Python3-Flask2x |
| 一个基于Python编写的轻量级的Web框架 | v2.2.2 | |
Nodejs-Puppeteer17x |
| 一个Headless Chrome工具 | puppeteer-v17.1.0 | |
Nodejs-Puppeteer10x |
| 一个Headless Chrome工具 | puppeteer-v10.2.0 | |
Python310-Opencv4x |
| 一个跨平台的计算机视觉库 | v4.7.0.68 | |
SQLite3 |
| 一种轻量型、进程内的关系型数据库 | 3.41.1 | |
FFmpeg6x |
| 一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序 | 6.0 | |
Nodejs-Puppeteer19x | Custom.Debian10 | 一个Headless Chrome 工具 | puppeteer-v19.8.5 | |
Python38-Playwright | Custom.Debian10 | puppeteer-v19.8.5 | 1.31.1 | |
Poppler22x-Pdf2image | Python 3.10 | 一个用来渲染PDF文档的程序库 | 22.12.0 | |
ServerlessDevs |
| 一个开源开放的Serverless开发者平台,致力于为开发者提供强大的工具链体系 | 2.1.14 |
Web框架
公共层名称 | 兼容的运行时 | 版本(只展示核心库的版本号) | 使用前必读 |
Python3-Flask2x |
| flask-2.2.2 |
阿里云SDK
公共层名称 | 兼容的运行时 | 说明 | 使用前必读 |
Python310-Aliyun-SDK |
| 阿里云常用SDK(Python3.10) | |
Aliyun-DataX |
| 阿里云DataWorks数据集成的开源版本 | |
Python39-Aliyun-SDK |
| 阿里云常用SDK(Python3.9) | |
Python36-Aliyun-SDK |
| 阿里云常用SDK(Python3.6) | |
Nodejs-Aliyun-SDK |
| 阿里云常用SDK(Node.js 20/Node.js 18/Node.js 16/Node.js 14) |
通过控制台配置官方公共层
前提条件
操作步骤
- 登录函数计算控制台,在左侧导航栏,单击服务及函数。
- 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
- 在函数管理页面,单击目标函数操作列的配置。
在层区域,单击+添加层,从下拉列表中选择添加官方公共层。
在官方公共层下拉列表,查看层的描述和License信息并选择一个官方公共层,在层版本下拉列表,选择层版本,然后单击保存。
- 一个函数最多支持配置5个层,包括自定义层和官方公共层。
- 当函数配置多个层时,这些层的内容将被合并至/opt目录,多个层按照层配置的逆序合并。如果多个层中有同名文件,先配置的层会覆盖后配置的层中的同名文件。
通过Serverless Devs配置官方公共层
前提条件
操作步骤
执行以下命令查找指定地域下的自定义层。
s cli fc layer list --official --region cn-hangzhou
执行成功后,返回官方公共层列表,如下所示。从中获取目标层的新ARN(即
arnV2
)并记录。- 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
示例解析如下:- layerName:层名称。
- version:层版本。
- arn:层的旧ARN。只支持在自定义层中使用。
- arnV2:层的新ARN。支持在自定义层和官方公共层中使用。
- acl:层的权限。取值0代表私有,取值1代表公有。官方公共层默认为公有,自定义层可以设置为私有或者公有。
- description:层的描述信息。
- compatibleRuntime:兼容的运行时列表。
在任意目录下创建s.yaml文件,填写获取的层的新ARN。
示例如下:
edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fcDeployApp # 项目名称 access: "default" # 密钥别名 services: fc-deploy-test: # 服务名称 component: fc # 组件名称 props: # 组件的属性值 region: cn-hangzhou service: name: fctest description: 'test' internetAccess: true function: name: emoji # 函数名称 description: this is a layer demo runtime: python3.9 codeUri: ./ handler: index.handler memorySize: 128 timeout: 6 layers: # 函数绑定层,取值是层的ARN - acs:fc:cn-hangzhou:official:layers/Aliyun-DataX/versions/1 - acs:fc:cn-hangzhou:official:layers/Python39-SciPy1x/versions/1
在s.yaml文件所在目录,执行以下命令部署函数并为其配置层。
s deploy
更多信息
您还可以通过API或SDK来管理层和配置层,详情请参见CreateFunction - 创建函数和UpdateFunction - 更新函数。
如果您为函数配置层时,遇到报错“xxx is not supported by layer”,请参见FAQ为函数配置层时报错“xxx is not supported by layer”怎么办?。