Azure Functions 上 .NET 的孤立工作者模型與進行中模型的差異

.NET 函式有兩種執行模型:

執行模型 描述
隔離式工作者模型 你的函式程式碼運行在另一個 .NET 工作程序中。 請搭配支援版本的.NET 和 .NET Framework使用。 欲了解更多,請參閱 Guide,了解如何在孤立工作者模型中運行 C# Azure Functions。
進程內模型 您的函數程式碼執行的處理序與 Functions 主機處理序相同。 僅支援長期支援(LTS)版本的.NET。 欲了解更多,請參閱 使用 Azure Functions 開發 C# 類別函式庫函式。

本文說明這兩個模型之間功能與行為差異的目前狀態。 要從進行中模型遷移到隔離工作者模型,請參見 Migrate .NET 應用程式從進行中模型遷移到隔離工作者模型。

執行模式比較表

使用下表來比較兩個模型之間的功能和功能差異:

功能/行為 隔離式背景工作角色模型 內含式模型 3
支援.NET版本 長期支援 (LTS) 版本、
標準期限支援 (STS) 版本、
.NET Framework
長期支援(LTS)版本,以 .NET 8 版本結束
核心 SDK 與套件 Azure.Functions.Sdk6
Microsoft。Azure.Functions.Worker
Microsoft.NET。Sdk.Functions
繫結延伸模組套件 Microsoft。Azure.Functions.Worker.Extensions.* Microsoft。Azure.WebJobs.Extensions.*
Durable Functions 支援 支援
繫結所公開的模型類型 簡單型別
JSON 可序列化類型
陣列/列舉
服務 SDK 型別4
簡單型別
JSON 可序列化型別
陣列/列舉
服務 SDK 型別4
HTTP 觸發程式模型類型 Http請求數據 / Http回應資料
HttpRequest / IActionResult(使用 ASP.NET Core integration)5
HttpRequest / IActionResult5
HttpRequest訊息 / Http回應訊息
輸出繫結互動 使用下列方式傳回擴充模型中的值:
- 單一或多個輸出
- 輸出陣列
傳回值 (僅單一輸出)、
out 參數、
IAsyncCollector
命令式繫結1 不支援 - 改為直接使用 SDK 型別 支援
相依性插入 支援(與.NET生態系統一致的改良模型) 支援
中介軟體 支援 不支援
記錄 ILogger<T> / ILogger從 FunctionContext 或使用相依性插入取得 ILogger 傳遞至函式
透過使用ILogger<T>進行
Application Insights 相依性 支援 支援
取消權杖 支援 支援
冷啟動時間2 可設定最佳化 已最佳化
ReadyToRun 支援 支援
[彈性消費] 支援 不支援
熱望 支援 不支援
  1. 當你需要用執行時設定的參數來與服務互動時,建議直接使用對應的服務 SDK,而不是使用命令式綁定。 SDK 較為簡潔、適用於更多案例,並具有錯誤處理和偵錯用途的優點。 這項建議適用於這兩個模型。
  2. 在使用 Windows 某些預覽版 .NET 時,冷啟動時間也可能因預覽框架的即時載入而受到影響。 這種影響同時適用於在製程與獨立作業模型,但在比較不同版本時可能會較為明顯。 Linux 方案中不會出現此預覽版本的延遲。
  3. C# 腳本函式也會在進程中執行,並使用與進程中類別函式相同的函式庫。 欲了解更多資訊,請參閱 Azure Functions C# 腳本(.csx)開發者參考。
  4. 服務 SDK 類型包含來自 Azure SDK for .NET 的類型,例如 BlobClient。
  5. .NET Framework 不支援 ASP.NET Core 類型。
  6. Azure.Functions.Sdk支援 .NET 8 及更新版本,以及 .NET 框架。 它不支援從 .NET Core 2.x 到 .NET 7 之間已停止支援的目標 Framework。

支援的版本

Functions 執行環境版本支援特定版本的 .NET。 欲了解更多 Functions 版本,請參閱 Azure Functions執行時版本概覽。 版本支援也取決於函式執行同處理序或隔離式背景工作處理序。

附註

若要瞭解如何變更函數應用程式所使用的 Functions 執行階段版本,請參閱檢視及更新目前的執行階段版本。

下表顯示了可與特定版本的 *Functions* 一起使用的最高層級的 .NET 或 .NET 框架。

Functions 執行階段版本 隔離式工作者模型 進行中模型3
函數 4.x1 .NET 104
.NET 9.0
.NET 8.0
.NET 框架 4.82
.NET 8.0

1 .NET 6 先前在兩款機型上均支援,但於 2024 年 11 月 12 日達到 官方支援結束。 .NET 7 先前在孤立工作者模式中支援,但於 2024 年 5 月 14 日結束官方支援。

2建置過程也需要 .NET SDK 。

3 進行中模型的支援將於 2026 年 11 月 10 日結束。 如需詳細資訊,請參閱此支援公告。 如需持續獲得完整支援,您應將應用程式移轉至隔離式工作者模型。

4 你不能在 Linux 的 Consumption 方案中執行 .NET 10 應用程式。 若要在 Linux 上執行,您應該改用 彈性消費方案。 有關逐步遷移的指引,請參閱 「將消費方案應用程式遷移到彈性消費方案」。

欲了解最新Azure Functions版本的消息,包括特定舊版次要版本的移除,請關注 Azure App 服務 公告。

後續步驟