Share via


Azure Functions 上適用於 .NET 的隔離式背景工作角色模型與內含式模型之間的差異

適用於 .NET 函式的執行模型有兩個:

執行模型 描述
隔離式背景工作模型 您的函數程式碼在個別的 .NET 背景工作處理序中執行。 搭配支援的 .NET 和 .NET Framework 版本使用。 若要深入了解,請參閱開發 .NET 隔離式背景工作處理序函數
同處理序模型 您的函數程式碼執行的處理序與 Functions 主機處理序相同。 僅支援長期支援 (LTS) 的 .NET 版本。 若要深入了解,請參閱開發 .NET 類別庫函數

本文說明這兩個模型之間功能與行為差異的目前狀態。 若要從內含式模型移轉至隔離式背景工作角色模型,請參閱將 .NET 應用程式從內含式模型移轉至隔離式背景工作角色模型

執行模式比較表

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

功能/行為 隔離式背景工作角色模型 進程內模型3
支援的 .NET 版本 長期支援 (LTS) 版本、
標準期限支援 (STS) 版本、
.NET Framework
長期支援 (LTS) 版本6
核心套件 Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Functions
繫結延伸模組套件 Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensions.*
長期函式 支援 支援
繫結所公開的模型類型 簡單型別
JSON 可序列化型別
陣列/列舉
服務 SDK 型別4
簡單型別
JSON 可序列化型別
陣列/列舉
服務 SDK 型別4
HTTP 觸發程式模型類型 HttpRequestData / HttpResponseData
HttpRequest / IActionResult (使用 ASP.NET Core 整合)5
HttpRequest / IActionResult5
HttpRequestMessage / HttpResponseMessage
輸出繫結互動 使用下列方式傳回擴充模型中的值:
- 單一或多個輸出
- 輸出陣列
傳回值 (僅單一輸出)、
out 參數、
IAsyncCollector
命令式繫結1 不支援 - 改為直接使用 SDK 型別 支援
相依性插入 支援 (配合 .NET 生態系統改善的模型) 支援
中介軟體 支援 不支援
記錄 FunctionContext 或透過相依性插入取得 ILogger<T>/ILogger ILogger 傳遞至函式
透過相依性插入傳遞 ILogger<T>
Application Insights 相依性 支援 支援
取消權杖 支援 支援
冷啟動時間2 可設定最佳化 已最佳化
ReadyToRun 支援 支援

1 當您需要使用在執行階段判斷的參數來與服務互動時,建議直接使用對應的服務 SDK,而非使用命令式繫結。 SDK 較為簡潔、適用於更多案例,並具有錯誤處理和偵錯用途的優點。 這項建議適用於這兩個模型。

2 由於預覽架構的 Just-In-Time 載入,使用某些預覽版本的 .NET 時,可能會對 Windows 上的冷啟動時間造成額外影響。 此影響同時適用於內含式和跨處理序模型,但在不同版本之間進行比較時會很明顯。 Linux 方案中不會出現此預覽版本的延遲。

3 C# 指令碼函式也會執行內含式,並使用與內含式類別庫函式相同的程式庫。 如需詳細資訊,請參閱 Azure Functions C# 指令碼 (.csx) 開發人員參考

4 服務 SDK 型別包含來自適用於 .NET 的 Azure SDK 的型表,例如 BlobClient

5 .NET Framework 不支援 ASP.NET Core 型別。

6 內含式模型尚不支援 .NET 8,但可在隔離式背景工作角色模型上使用。 如需 .NET 8 方案的相關資訊,包括內含式模型的未來選項,請參閱 Azure Functions 藍圖更新文章

支援的版本

Functions 執行階段的版本支援 .NET 特定版本。 若要深入瞭解 Functions 版本,請參閱 Azure Functions 執行階段版本概觀。 版本支援也取決於函式執行同處理序或隔離式背景工作處理序。

注意

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

下表顯示可與 Functions 特定版本搭配使用的最高層級 .NET 或 .NET Framework。

Functions 執行階段版本 隔離式背景工作模型 進程內模型5
Functions 4.x1 .NET 8.0
.NET 6.02
.NET Framework 4.83
.NET 6.02
Functions 1.x4 n/a .NET Framework 4.8

1.NET 7 先前在隔離的工作者模型上受到支援,但於 2024 年 5 月 14 日終止 正式支援

2 .NET 6 於 2024 年 11 月 12 日結束正式支援

3 建置程式也需要 .NET SDK

4 1.x 版的 Azure Functions 執行階段於 2026 年 9 月 14 日結束支援。 如需詳細資訊,請參閱此支援公告。 如需持續的完整支援,您應該將應用程式移轉至 4.x 版

5 支援會在 2026 年 11 月 10 日結束進程模型。 如需詳細資訊,請參閱此支援公告。 如需持續的完整支援,您應該 將應用程式遷移至隔離的背景工作模型

如需有關 Azure Functions 版本的最新新聞,包括移除特定舊版次要版本,請持續關注 Azure App Service 公告

下一步