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控制台,在左側導覽列,單擊函數。
在頂部功能表列,選擇地區,然後在函數頁面,單擊目標函數。
在函數詳情頁面,選擇配置頁簽。
選擇左側層頁簽,單擊編輯,在編輯函數層面板選擇 ,然後選擇官方公用層和層版本,最後單擊部署。
一個函數最多支援配置5個層,包括自訂層和官方公用層。
當函數配置多個層時,這些層的內容將被合并至/opt目錄,多個層按照層配置的逆序合并。如果多個層中有同名檔案,先配置的層會覆蓋後配置的層中的同名檔案。
通過Serverless Devs配置官方公用層
前提條件
操作步驟
執行以下命令尋找指定地區下的自訂層。
s cli fc layer list --official --region cn-hangzhou
執行成功後,返回官方公用層列表,如下所示。從中擷取目標層的ARN並記錄。
- layerName: Python39-Aliyun-SDK arn: acs:fc:cn-hangzhou:official:layers/Python39-Aliyun-SDK/versions/3 version: 3 acl: 1 description: Python3.9 Aliyun SDK layer. compatibleRuntime: - custom - python3.9 - custom.debian10 - layerName: Python39-Package-Collection arn: acs:fc:cn-hangzhou:official:layers/Python39-Package-Collection/versions/3 version: 3 acl: 1 description: Python3.9 package collection layer. compatibleRuntime: - custom - custom.debian10
樣本解析如下:
layerName:層名稱。
version:層版本。
arn:層的ARN。
acl:層的許可權。取值0代表私人,取值1代表公有。官方公用層預設為公有,自訂層可以設定為私人或者公有。
description:層的描述資訊。
compatibleRuntime:相容的運行時列表。
在目標目錄下建立s.yaml檔案,填寫擷取的層的新ARN。
樣本如下:
edition: 3.0.0 name: hello-world-app access: "default" vars: # 全域變數 region: "cn-hangzhou" resources: hello_world: component: fc3 # 組件名稱 # actions: # 自訂執行邏輯,關於actions 的使用,可以參考:https://docs.serverless-devs.com/serverless-devs/yaml#%E8%A1%8C%E4%B8%BA%E6%8F%8F%E8%BF%B0actions props: region: ${vars.region} # 關於變數的使用方法,可以參考:https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC functionName: "emoji" description: 'this is a layer demo' runtime: "python3.9" code: ./code handler: index.handler memorySize: 512 timeout: 60 internetAccess: true layers: # 函數綁定層,取值是層的ARN - acs:fc:cn-hangzhou:official:layers/Python39-Aliyun-SDK/versions/3
在目標目錄下建立
code
層級,然後在code
下準備函數代碼。在目標目錄執行以下命令部署函數並為其配置層。
s deploy
更多資訊
您還可以通過API或SDK來管理層和配置層,詳情請參見CreateFunction - 建立函數和UpdateFunction - 更新函數。
如果您為函數配置層時,遇到報錯“xxx is not supported by layer”,請參見FAQ為函數配置層時報錯“xxx is not supported by layer”怎麼辦?。