為滿足不同情境下的使用者需求,Function Compute提供事件函數、Web函數、任務函數和GPU函數四種函數類型。本文介紹Function Compute支援的函數類型的適用情境及差異,供您進行技術選型。
選型分析
對比項 | 事件函數 | Web函數 | 任務函數 | GPU函數 |
適用情境 | 按照Function Compute定義的介面編寫程式處理事件。 | 基於各個語言的流行架構(Java SpringBoot、Node.js Express、Python Flask、Golang Gin等)編寫程式,或者遷移已有的架構應用。 | 對函數發起非同步呼叫,且需要追蹤並儲存非同步呼叫各個階段的狀態,可以選擇建立任務函數。 | 使用流行AI專案(Stable Diffusion WebUI、ComfyUI、RAG、TensorRT等)的容器鏡像建立GPU執行個體。 |
運行時環境 | 推薦使用內建運行時 | 推薦使用自訂運行時 | 推薦使用內建運行時 | 僅支援自訂容器運行環境 |
冷啟動 | 最快。程式碼封裝中不包含運行時,所以冷啟動最快。 | 較快。程式碼封裝是一個HTTP Server程式,體積較大,但不需要拉取ACR容器鏡像,所以冷啟動會較快。 | 最快。程式碼封裝中不包含運行時,所以冷啟動最快。 | 較慢。需要拉取ACR容器鏡像,所以冷啟動較慢。 |
程式碼封裝限制 | 500 MB未解壓程式碼封裝 | 15 GB未解壓鏡像 | ||
程式碼封裝格式 | ZIP、JAR(Java)、檔案夾 | |||
支援的執行個體類型 | CPU執行個體 | GPU執行個體 | ||
單一實例多並發 | 不支援 | 支援 | 不支援 | 支援 |
非同步任務 | 預設關閉 | 預設關閉 | 預設開啟 | 預設關閉 |
通過控制台建立函數
事件函數
如果您想按照Function Compute定義的介面編寫程式處理事件,請選擇事件函數。具體操作,請參見建立事件函數。
Web函數
如果您想基於各個語言的流行架構(Java SpringBoot、Node.js Express、Python Flask、Golang Gin等)編寫程式、自訂容器鏡像,或者遷移已有的架構應用,請選擇Web函數。具體操作,請參見建立Web函數。
任務函數
如果您想對函數發起非同步呼叫,且需要追蹤並儲存非同步呼叫各個階段的狀態,可以選擇建立任務函數。任務函數預設開啟任務模式,您可以使用任務模式提交、查看、停止和重試非同步任務。詳情參見建立任務函數。
GPU函數
如果您想使用流行AI專案(Stable Diffusion WebUI、ComfyUI、RAG、TensorRT等)的容器鏡像建立GPU執行個體,請使用GPU函數。具體操作,請參見建立GPU函數。
相關文檔
如果您想瞭解關於Function Compute冷啟動的更多資訊,請參見概念。
關於執行個體類型的更多資訊,請參見執行個體類型及使用模式。
關於單一實例多並發功能的更多資訊,請參見配置單一實例並發度。
關於非同步任務的更多資訊,請參見非同步任務。