Function Compute提供了常用的公用層,您無需自訂層即可為您的函數配置層功能。本文介紹如何在函數中配置官方公用層。
Function Compute支援的官方公用層
下方列舉Function Compute支援的幾類官方公用層。如果您未找到您需要的層,請聯絡我們為您添加。
下方僅列舉部分常用的官方公用層,關於更多Function Compute支援的官方公用層及其說明,請參見公用層。
自訂運行時
包括自訂語言的運行時,例如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 |
| 阿里雲Object Storage Service提供的Python SDK,名稱為OSS2 | - | |
Python39-OSS2 |
| 阿里雲Object Storage Service提供的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 |
| 阿里雲DataWorksData Integration的開源版本 | |
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) |
通過控制台配置官方公用層
前提條件
操作步驟
- 登入Function Compute控制台,在左側導覽列,單擊服務及函數。
- 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
- 在函數管理頁面,單擊目標函數操作列的配置。
在層地區,單擊+添加層,從下拉式清單中選擇添加官方公用層。
在官方公用層下拉式清單,查看層的描述和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”怎麼辦?。