管理函數(shù)
函數(shù)計算的資源調(diào)度與運行以函數(shù)為單位。一個服務(wù)下可以創(chuàng)建多個函數(shù),這些函數(shù)彼此相互獨立,互不影響,但這些函數(shù)可以共享一些相同的設(shè)置,例如服務(wù)授權(quán)和日志配置等。您可以通過函數(shù)計算控制臺創(chuàng)建函數(shù)、更新函數(shù)及獲取函數(shù)ARN等。
前提條件
創(chuàng)建函數(shù)
- 登錄函數(shù)計算控制臺,在左側(cè)導(dǎo)航欄,單擊服務(wù)及函數(shù)。
- 在頂部菜單欄,選擇地域,然后在服務(wù)列表頁面,單擊目標服務(wù)。
- 在函數(shù)管理頁面,單擊創(chuàng)建函數(shù)。
在創(chuàng)建函數(shù)頁面,按需選擇創(chuàng)建函數(shù)的方式,配置以下配置項,然后單擊創(chuàng)建。
說明本文以使用內(nèi)置運行時創(chuàng)建和使用自定義運行時創(chuàng)建方式為例進行說明。如果函數(shù)計算提供的環(huán)境無法滿足您的業(yè)務(wù)需求,您可以使用容器鏡像創(chuàng)建方式部署函數(shù)。具體操作,請參見創(chuàng)建Custom Container函數(shù)。
基本設(shè)置:配置函數(shù)的基本信息,包括函數(shù)名稱和請求處理程序類型。請求處理程序類型包括以下兩種。
處理事件請求:通過定時器、調(diào)用API/SDK或其他阿里云服務(wù)的觸發(fā)器來觸發(fā)函數(shù)執(zhí)行。
處理 HTTP 請求:用于處理HTTP請求或WebSocket請求的函數(shù)。如果您的使用場景是Web場景,建議您使用自定義運行時創(chuàng)建。
函數(shù)代碼:配置函數(shù)的運行環(huán)境和代碼相關(guān)信息。
配置項
說明
示例
運行環(huán)境
選擇您熟悉的語言,例如Python、Java、PHP或Node.js等。函數(shù)計算支持的運行環(huán)境,請參見函數(shù)計算支持的函數(shù)運行環(huán)境列表。
Node.js14
代碼上傳方式
選擇上傳函數(shù)代碼到函數(shù)計算的方式。
使用示例代碼:默認方式,您可以根據(jù)業(yè)務(wù)需要選擇函數(shù)計算為您提供的創(chuàng)建函數(shù)的示例代碼。
通過 ZIP 包上傳代碼:選擇函數(shù)代碼ZIP包并上傳。
通過 JAR 包上傳代碼:選擇函數(shù)代碼JAR包并上傳。
通過文件夾上傳代碼:選擇包含函數(shù)代碼的文件夾并上傳。
通過 OSS 上傳代碼:選擇上傳函數(shù)代碼的Bucket 名稱和文件名稱。
說明代碼上傳方式選擇使用示例代碼時,不需要修改請求處理程序。當(dāng)選擇其他代碼上傳方式時,則需要根據(jù)實際情況修改請求處理程序,否則函數(shù)執(zhí)行時會報錯。
當(dāng)運行環(huán)境選擇為Java 8或Java 11時,只支持使用示例代碼、通過 JAR 包上傳代碼和通過 OSS 上傳代碼。其余運行環(huán)境支持使用示例代碼、通過 ZIP 包上傳代碼、通過文件夾上傳代碼和通過 OSS 上傳代碼。
使用示例代碼
啟動命令
說明僅當(dāng)您選擇使用自定義運行時創(chuàng)建函數(shù)時,需設(shè)置此配置項。
程序的啟動命令。如果不配置啟動命令,您需要在代碼的根目錄手動創(chuàng)建一個名稱為bootstrap的啟動腳本,您的程序通過此腳本來啟動。
npm run start
監(jiān)聽端口
說明僅當(dāng)您選擇使用自定義運行時創(chuàng)建函數(shù)時,需設(shè)置此配置項。
您的代碼中的HTTP Server所監(jiān)聽的端口。
9000
高級配置:配置函數(shù)的實例相關(guān)信息和函數(shù)執(zhí)行超時時間等。
配置項
說明
示例
規(guī)格方案
根據(jù)您的業(yè)務(wù)情況,選擇或手動輸入合理的vCPU規(guī)格和內(nèi)存規(guī)格組合。關(guān)于各資源使用的計費詳情,請參見計費概述。
說明vCPU大小(單位為核)與內(nèi)存大小(單位為GB)的比例必須設(shè)置在1∶1到1∶4之間。
0.35核,512 MB
臨時硬盤大小
根據(jù)您的業(yè)務(wù)情況,選擇臨時存儲文件的硬盤大小。
取值說明如下。
512 MB:默認值。不計費,函數(shù)計算為您提供512 MB以內(nèi)的硬盤免費使用額度。
10 GB:按9.5 GB進行計費。
說明臨時硬盤中所有目錄可寫,共享臨時硬盤的空間。
臨時硬盤大小與底層執(zhí)行函數(shù)的實例生命周期一致,實例被系統(tǒng)回收后,硬盤上的數(shù)據(jù)也會消失。如您需要對文件進行持久化保存,可以選擇掛載NAS或OSS。具體操作,請參見配置NAS文件系統(tǒng)和配置OSS文件系統(tǒng)。
512 MB
實例并發(fā)度
設(shè)置函數(shù)實例的并發(fā)度。具體信息,請參見設(shè)置實例并發(fā)度。
10
執(zhí)行超時時間
設(shè)置超時時間。執(zhí)行超時時間默認為60秒,最長為86400秒。
60
請求處理程序
設(shè)置請求處理程序,函數(shù)計算的運行時會加載并調(diào)用您的請求處理程序處理請求。選擇使用自定義運行時創(chuàng)建和使用容器鏡像創(chuàng)建函數(shù)時,無需設(shè)置此配置項。
說明代碼上傳方式選擇使用示例代碼時,不需要修改請求處理程序。當(dāng)選擇其他代碼上傳方式時,則需要根據(jù)實際情況修改請求處理程序,否則函數(shù)執(zhí)行時會報錯。
index.handler
時區(qū)
選擇函數(shù)的時區(qū)。此處設(shè)置函數(shù)的時區(qū)后,將自動為函數(shù)添加一條環(huán)境變量TZ,其值為您設(shè)置的目標時區(qū)。
UTC
環(huán)境變量:設(shè)置函數(shù)運行環(huán)境中的環(huán)境變量。更多信息,請參見環(huán)境變量。
觸發(fā)器配置:設(shè)置函數(shù)的觸發(fā)器,您可以使用觸發(fā)器觸發(fā)函數(shù)執(zhí)行。更多信息,請參見觸發(fā)器管理。
更新函數(shù)
- 登錄函數(shù)計算控制臺,在左側(cè)導(dǎo)航欄,單擊服務(wù)及函數(shù)。
- 在頂部菜單欄,選擇地域,然后在服務(wù)列表頁面,單擊目標服務(wù)。
- 在函數(shù)管理頁面,單擊目標函數(shù)操作列的配置。
在編輯函數(shù)配置頁面,按需修改相應(yīng)的配置項,單擊保存。
基礎(chǔ)信息
配置函數(shù)的基礎(chǔ)信息。目前僅支持修改函數(shù)描述、規(guī)格方案、硬盤大小和實例并發(fā)度。
環(huán)境信息
配置函數(shù)的運行環(huán)境和其他關(guān)鍵配置項。更多信息,請參見創(chuàng)建函數(shù)。
其他配置
配置項
說明
參考文檔
環(huán)境變量
配置函數(shù)運行環(huán)境中的環(huán)境變量。
實例生命周期回調(diào)
配置函數(shù)實例的生命周期回調(diào),包括初始化函數(shù)、PreFreeze 函數(shù)和PreStop 函數(shù)。
層
選擇已創(chuàng)建的層名稱和版本。層可以為您提供自定義的公共依賴庫、運行時環(huán)境及函數(shù)擴展等發(fā)布與部署能力。
DNS 配置
配置自定義DNS,平臺根據(jù)該配置生成resolv.conf。
您也可以根據(jù)提示刪除不需要的函數(shù)。
獲取函數(shù)ARN
資源ARN(Aliyun Resource Name)用于在代碼中定位阿里云資源。您可以獲取函數(shù)的ARN,便于引用函數(shù)。
- 登錄函數(shù)計算控制臺,在左側(cè)導(dǎo)航欄,單擊服務(wù)及函數(shù)。
- 在頂部菜單欄,選擇地域,然后在服務(wù)列表頁面,單擊目標服務(wù)。
在函數(shù)管理頁面,單擊需獲取ARN的函數(shù)名稱。
在函數(shù)詳情頁面,選擇函數(shù)配置頁簽,在基礎(chǔ)信息區(qū)域,查看并復(fù)制函數(shù)的ARN。
函數(shù)計算支持的函數(shù)運行環(huán)境列表
運行環(huán)境 | 說明 | 文檔鏈接 |
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 | 無 |
相關(guān)文檔
除控制臺外,函數(shù)計算還提供以下方式來管理函數(shù)。
通過Serverless Devs管理函數(shù)相關(guān)命令:函數(shù)相關(guān)命令。
與管理函數(shù)相關(guān)的API:函數(shù)。
函數(shù)執(zhí)行超時,您可以嘗試的操作見函數(shù)執(zhí)行超時,報錯Function time out after怎么辦?。
使用頻率較低的函數(shù)調(diào)用時間會比較長,具體原因見為什么使用頻率較低的函數(shù)調(diào)用時間比較長?。如果想消除冷啟動延時的影響,可以使用預(yù)留模式的實例,具體可參考如何讓實例一直存活不銷毀,消除冷啟動延時的影響?。
如果您想把付費的函數(shù)關(guān)閉,可以把函數(shù)及對應(yīng)的服務(wù)刪除,具體可參考更新函數(shù)和更新服務(wù)。