比較 Azure Functions 主控選項
在 Azure 中建立函數應用程式時,必須為應用程式選擇主控方案。 Azure 為您的函式程式碼提供下列主控選項:
主控選項 | 服務 | 可用性 | 容器支援 |
---|---|---|---|
取用方案 | Azure Functions | 正式推出 (GA) | 無 |
Flex 使用量方案 | Azure Functions | 預覽 | 無 |
進階方案 | Azure Functions | GA | Linux |
專用方案 | Azure Functions | GA | Linux |
容器應用程式 | Azure 容器應用程式 | GA | Linux |
Azure App Service 基礎結構可協助在 Linux 和 Windows 虛擬機器上裝載 Azure Functions。 您選擇的主控選項會決定下列行為:
- 函式應用程式的縮放方式。
- 每個函式應用程式執行個體可用的資源。
- 支援進階功能,例如 Azure 虛擬網路連線。
- 支援 Linux 容器。
您選擇的方案也會影響執行函式程式碼的成本。
方案概觀
以下是各種裝載選項的優點摘要:
取用方案
取用方案是預設主控方案。 僅需針對您的函式執行時的計算資源付費 (隨用隨付),且會自動調整。 採用使用量方案時,系統會根據傳入事件的數目,動態新增和移除 Functions 主機的執行個體。
Flex 使用量方案
使用計算選擇、虛擬網路和隨用隨付計費取得高度可擴縮性。 彈性使用量方案會根據執行個體並行和傳入事件的數目,動態新增和移除 Functions 主機執行個體。
您可以指定預先佈建的 (一律就緒) 執行個體數目來減少冷啟動次數。 根據需求自動調整。
進階方案
使用預先準備的背景工作角色 (這些背景工作角色在閒置後會無延遲地執行應用程式) 在功能更強大的執行個體上執行,並連線虛擬網路,同時根據需求自動調整。
下列情況請考慮 Azure Functions 進階方案:
- 您的函數應用程式會持續執行,或幾乎持續執行。
- 您想要進一步控制執行個體,並想要在具有事件驅動調整的相同方案中部署多個函數應用程式。
- 您在取用方案中有大量小型執行和高執行帳單,但 GB 秒數較低。
- 您需要比取用方案所提供更多的 CPU 或記憶體選項。
- 您的程式代碼執行時間必須超過取用方案所允許的運行時間上限。
- 您需要虛擬網路連線。
- 您要提供用來執行函式的自訂 Linux 映像。
專用方案
以 App Service 方案費率,定期在 App Service 方案中執行函式。 最適合無法使用 Durable Functions 的長時間執行情節。
下列情況請考慮使用 App Service 方案︰
- 您必須擁有完全可預測的計費,或需要手動調整執行個體。
- 您要在同一個方案上執行多個 Web 應用程式和函數應用程式
- 您需要存取較大的計算大小選項。
- App Service 環境 (ASE) 提供的完整計算隔離和保護網路存取。
- 高記憶體使用量和高規模 (ASE)。
容器應用程式
在 Azure 容器應用程式所裝載的完全受控環境中建立和部署容器化函數應用程式。
使用 Azure Functions 程式設計模型來建置事件驅動、無伺服器、雲端原生函數應用程式。 將函式與其他微服務、API、網站和工作流程一起執行為容器裝載的程式。
在下列情況下,請考慮在容器應用程式上裝載函式:
- 您要使用函式程式碼封裝自訂程式庫,以支援企業營運應用程式。
- 您必須將程式碼執行從內部部署或舊版應用程式移轉至容器中執行的雲端原生微服務。
- 您要避免管理 Kubernetes 叢集和專用計算的額外負荷和複雜度。
- 您需要函式專用 CPU 計算資源所提供的高端處理能力。
函數應用程式逾時持續時間
host.json 專案檔中的 functionTimeout
屬性會指定函數應用程式中函式的逾時持續時間。 此屬性特別適用於函式執行。 觸發程序啟動函式執行之後,函式必須在逾時持續時間內傳回/回應。
下表顯示特定方案的預設值和最大值 (以分鐘為單位):
計劃 | 預設 | 最大值 1 |
---|---|---|
取用方案 | 5 | 10 |
Flex 使用量方案 | 30 | 無限制的3 |
進階方案 | 302 | 無限制的3 |
專用方案 | 302 | 無限制的3 |
容器應用程式 | 305 | 無限制的3 |
- 不論函數應用程式逾時設定為何,230 秒是 HTTP 觸發函式回應要求所能花費的最大時間量。
- Functions 執行階段 1.x 版的預設逾時是無限制的。
- 保證最多 60 分鐘。 OS 和執行階段修補、弱點修補和調整行為仍可以取消函式執行。
- 在彈性使用量方案中,主機不會強制執行執行時間限制。 不過,目前沒有保證,因為平台可能需要在相應縮小、部署或套用更新期間終止您的執行個體。
- 當複本數目下限設定為零時,預設逾時取決於應用程式中使用的特定觸發程序。