Function Compute的資源調度與運行以函數為單位。一個服務下可以建立多個函數,這些函數彼此相互獨立,互不影響,但這些函數可以共用一些相同的設定,例如服務授權和日誌配置等。您可以通過Function Compute控制台建立函數、更新函數及擷取函數ARN等。
前提條件
建立函數
登入Function Compute控制台,在左側導覽列,單擊服務及函數。
在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
在函數管理頁面,單擊建立函數。
在建立函數頁面,按需選擇建立函數的方式,配置以下配置項,然後單擊建立。
說明本文以使用內建運行時建立和使用自訂運行時建立方式為例進行說明。如果Function Compute提供的環境無法滿足您的業務需求,您可以使用容器鏡像建立方式部署函數。具體操作,請參見建立Custom Container函數。
基本設定:配置函數的基本資料,包括函數名稱和請求處理常式類型。請求處理常式類型包括以下兩種。
處理事件請求:通過定時器、調用API/SDK或其他阿里雲服務的觸發器來觸發函數執行。
處理 HTTP 要求:用於處理HTTP請求或WebSocket請求的函數。如果您的使用情境是Web情境,建議您使用自訂運行時建立。
函數代碼:配置函數的運行環境和代碼相關資訊。
配置項
說明
樣本
運行環境
選擇您熟悉的語言,例如Python、Java、PHP或Node.js等。Function Compute支援的運行環境,請參見Function Compute支援的函數運行環境列表。
Node.js14
代碼上傳方式
選擇上傳函數代碼到Function Compute的方式。
使用範例程式碼:預設,您可以根據業務需要選擇Function Compute為您提供的建立函數的範例程式碼。
通過 ZIP 包上傳代碼:選擇函數代碼ZIP包並上傳。
通過 JAR 包上傳代碼:選擇函數代碼JAR包並上傳。
通過檔案夾上傳代碼:選擇包含函數代碼的檔案夾並上傳。
通過 OSS 上傳代碼:選擇上傳函數代碼的Bucket 名稱和檔案名稱。
說明代碼上傳方式選擇使用範例程式碼時,不需要修改請求處理常式。當選擇其他代碼上傳方式時,則需要根據實際情況修改請求處理常式,否則函數執行時會報錯。
當運行環境選擇為Java 8或Java 11時,只支援使用範例程式碼、通過 JAR 包上傳代碼和通過 OSS 上傳代碼。其餘運行環境支援使用範例程式碼、通過 ZIP 包上傳代碼、通過檔案夾上傳代碼和通過 OSS 上傳代碼。
使用範例程式碼
啟動命令
說明僅當您選擇使用自訂運行時建立函數時,需設定此配置項。
程式的啟動命令。如果不配置啟動命令,您需要在代碼的根目錄手動建立一個名稱為bootstrap的啟動指令碼,您的程式通過此指令碼來啟動。
npm run start
監聽連接埠
說明僅當您選擇使用自訂運行時建立函數時,需設定此配置項。
您的代碼中的HTTP Server所監聽的連接埠。
9000
進階配置:配置函數的執行個體相關資訊和函數執行逾時時間等。
配置項
說明
樣本
規格方案
根據您的業務情況,選擇或手動輸入合理的vCPU規格和記憶體規格組合。關於各資源使用的計費詳情,請參見計費概述。
說明vCPU大小(單位為核)與記憶體大小(單位為GB)的比例必須設定在1∶1到1∶4之間。
0.35核,512 MB
臨時硬碟大小
根據您的業務情況,選擇臨時隱藏檔的硬碟大小。
取值說明如下。
512 MB:預設值。不計費,Function Compute為您提供512 MB以內的硬碟免費使用額度。
10 GB:按9.5 GB進行計費。
說明臨時硬碟中所有目錄可寫,共用臨時硬碟的空間。
臨時硬碟大小與底層執行函數的執行個體生命週期一致,執行個體被系統回收後,硬碟上的資料也會消失。如您需要對檔案進行持久化儲存,可以選擇掛載NAS或OSS。具體操作,請參見配置NAS檔案系統和配置OSS檔案系統。
512 MB
執行個體並發度
設定函數執行個體的並發度。具體資訊,請參見設定執行個體並發度。
10
執行逾時時間
設定逾時時間。執行逾時時間預設為60秒,最長為86400秒。
60
請求處理常式
佈建要求處理常式,Function Compute的運行時會載入並調用您的請求處理常式處理請求。選擇使用自訂運行時建立和使用容器鏡像建立函數時,無需設定此配置項。
說明代碼上傳方式選擇使用範例程式碼時,不需要修改請求處理常式。當選擇其他代碼上傳方式時,則需要根據實際情況修改請求處理常式,否則函數執行時會報錯。
index.handler
時區
選擇函數的時區。此處設定函數的時區後,將自動為函數添加一條環境變數TZ,其值為您設定的目標時區。
UTC
環境變數:設定函數運行環境中的環境變數。更多資訊,請參見環境變數。
觸發器配置:設定函數的觸發器,您可以使用觸發器觸發函數執行。更多資訊,請參見觸發器管理。
更新函數
登入Function Compute控制台,在左側導覽列,單擊服務及函數。
在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
在函數管理頁面,單擊目標函數操作列的配置。
在編輯函數配置頁面,按需修改相應的配置項,單擊儲存。
基礎資訊
配置函數的基礎資訊。目前僅支援修改函數描述、規格方案、硬碟大小和執行個體並發度。
環境資訊
配置函數的運行環境和其他關鍵配置項。更多資訊,請參見建立函數。
其他配置
配置項
說明
參考文檔
環境變數
配置函數運行環境中的環境變數。
執行個體生命週期回調
配置函數執行個體的生命週期回調,包括初始化函數、PreFreeze 函數和PreStop 函數。
層
選擇已建立的層名稱和版本。層可以為您提供自訂的公用依賴庫、運行時環境及函數擴充等發布與部署能力。
DNS 配置
配置自訂DNS,平台根據該配置產生resolv.conf。
您也可以根據提示刪除不需要的函數。
擷取函數ARN
資源ARN(Aliyun Resource Name)用於在代碼中定位阿里雲資源。您可以擷取函數的ARN,便於引用函數。
登入Function Compute控制台,在左側導覽列,單擊服務及函數。
在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
在函數管理頁面,單擊需擷取ARN的函數名稱。
在函數詳情頁面,選擇函數配置頁簽,在基礎資訊地區,查看並複製函數的ARN。
Function Compute支援的函數運行環境列表
運行環境 | 說明 | 文檔連結 |
Node.js 6 | Node.js 6版本 | |
Node.js 8 | Node.js 8版本 | |
Node.js 10 | Node.js 10版本 | |
Node.js 12 | Node.js 12版本 | |
Node.js 14 | Node.js 14版本 | |
Node.js 16 | Node.js 16版本 | |
Python 2.7 | Python 2.7版本 | |
Python 3 | Python 3.6版本 | |
Python 3.9 | Python 3.9版本 | |
Python 3.10 | Python 3.10版本 | |
PHP 7.2 | PHP 7.2.7版本 | |
Java 11 | Java 11版本 | |
Java 8 | Java 8版本 | |
.NET Core 3.1 | .NET Core 3.1版本 | |
Go 1.x | Go 1.8或以上版本 | |
Custom Runtime | 自訂運行時(Debian 9) | |
Custom Runtime(Debian 10) | 自訂運行時(Debian 10) | |
Custom Container | 無 |
相關文檔
函數執行逾時,您可以嘗試的操作見函數執行逾時,報錯Function time out after怎麼辦?。
使用頻率較低的函數調用時間會比較長,具體原因見為什麼使用頻率較低的函數調用時間比較長?。如果想消除冷啟動延時的影響,可以使用預留模式的執行個體,具體可參考如何讓執行個體一直存活不銷毀,消除冷啟動延時的影響?。