函數計算提供了常用的公共層,您無需自定義層即可為您的函數配置層功能。本文介紹如何在函數中配置官方公共層。
函數計算支持的官方公共層
下方列舉函數計算支持的幾類官方公共層。如果您未找到您需要的層,請聯系我們為您添加。
下方僅列舉部分常用的官方公共層,關于更多函數計算支持的官方公共層及其說明,請參見公共層。
自定義運行時
包括自定義語言的運行時,例如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”怎么辦?。