概述
用戶直接打包上傳容器鏡像,由平臺加載并啟動運行。與原本上傳代碼方式相比,用戶可以使用自定義的代碼包,不僅靈活也簡化了用戶的遷移成本。您可以選擇“事件函數”類型創建自定義鏡像函數,也可以選擇“HTTP函數”類型創建自定義鏡像函數。
支持的功能:
- 下載用戶鏡像
用戶鏡像儲存在自己的SWR服務中,需要SWR Admin權限才能下載,FunctionGraph會在創建pod前使用swr api生成并設置好臨時登錄指令。
- 環境變量
設置FunctionGraph函數的加密配置和環境變量。
- 掛載外部數據盤
支持掛載外部數據盤。
- 預留實例
支持預留實例。
前提條件
創建一個包含“SWR Admin容器鏡像服務(SWR)管理員”權限的委托,因為用戶鏡像儲存在SWR服務中,只有擁有“SWR Admin”權限,才能調用與獲取,拉取鏡像。
操作步驟
- 登錄函數工作流控制臺,在左側的導航欄選擇“函數 > 函數列表”。
- 單擊右上方的“創建函數”,進入“創建函數”頁面。
- 選擇“容器鏡像”,參見下表。
配置信息
參數 說明 函數類型 選擇函數類型。
事件函數:通過觸發器來觸發函數執行。
HTTP函數:用戶可以直接發送 HTTP 請求到 URL 觸發函數執行。說明自定義容器鏡像需包含HTTP Server,監聽端口為8000。
HTTP函數只允許創建APIG/APIC的觸發器類型,其他觸發器不支持。
事件函數需創建一個HTTP Server并實現Method為POST和Path為/invoke的函數執行入口,可實現Method為POST和Path為/init的函數初始化入口區域 選擇要部署代碼的區域。 函數名稱 函數名稱,命名規則如下:
可包含字母、數字、下劃線和中劃線,長度不超過60個字符。
以大/小寫字母開頭,以字母或數字結尾。企業項目 選擇已創建的企業項目,將函數添加至企業項目中,默認選擇“default”。 容器鏡像 輸入鏡像URL,即用于函數的容器鏡像的位置。您可以單擊“查看鏡像”,查看自有鏡像及共享鏡像。 容器鏡像覆蓋
CMD:容器的啟動命令,例如"/bin/sh"。該參數為可選參數,不填寫,則默認使用鏡像中的Entrypoint/CMD。字符串數組,以逗號分開。
Args:容器的啟動參數,例如"-args,value1"。該參數為可選參數,不填寫,則默認使用鏡像中的CMD。字符串數組,以逗號分開。
Working Dir:容器的工作目錄。該參數為可選參數,不填寫,則默認使用鏡像中的配置。文件夾路徑,以/開頭。
用戶ID:鏡像運行時的用戶ID,若不填寫,默認為1003。
用戶組ID:鏡像運行時的用戶組ID,若不填寫,默認為1003。
現有委托 選擇包含SWR Admin權限的委托。
說明
Command、Args、Working dir三個參數之和不能超過5120。
初次執行時需要從SWR中拉取鏡像,且冷啟動時需要啟動容器,所以自定義鏡像冷啟動比較慢。后續每次冷啟動,如果節點上沒有鏡像,都需要從SWR中拉取。
鏡像需要選擇為“公開”。
自定義容器鏡像開放端口限定為8000。
可支持的鏡像包最大為2G,當鏡像包過大時可以采取一些方式縮容,比如在線題庫場景中,可以把原本加載在容器中的題庫數據通過外部文件系統掛載盤方式掛載到容器中。
FunctionGraph通過LTS日志采集容器輸出到控制臺的所有日志,可以通過標準輸出或者開源日志框架重定向到控制臺的方式打印業務信息。打印的內容建議包括系統時間、組件名稱、代碼行、關鍵數據等來方便定位。
oom錯誤時,內存占用大小可以在函數執行結果中查看。
?用戶函數需要返回一個合法的http響應報文。
示例:
使用容器鏡像部署函數,開發HTTP函數示例,請參見開發HTTP函數示例。
使用容器鏡像部署函數,開發事件函數示例,請參見開發事件函數示例。