Share via


Azure Functions 執行階段版本概觀

Azure Functions 目前支援兩個版本的執行階段主機。 下表詳細說明目前支援的執行階段版本、其支援層級,以及應何時使用:

版本 支援層級 描述
4.x GA 所有語言函式的建議執行階段版本。查看目前支援的語言版本
1.x GA (支援將於 2026 年 9 月 14 日結束) 僅支援必須使用 .NET Framework 的 C# 應用程式。 此版本處於維護模式,只有後續版本才提供增強功能。 對 1.x 版的支援將於 2026 年 9 月 14 日結束。 強烈建議您將應用程式移轉至 4.x 版,其支援 .NET Framework 4.8、.NET 6、.NET 7 和 .NET 8。

重要

自 2022 年 12 月 13 日起,在 Azure Functions 執行階段 2.x 和 3.x 版上執行的函數應用程式已終止延伸支援。 如需詳細資訊,請參閱已淘汰的版本

本文詳細說明支援版本之間的一些差異、如何建立每個版本,以及如何變更函式執行的版本。

支援等級

支援有兩種等級:

  • 正式推出 (GA) - 完整支援且已核准用於生產環境。
  • 預覽 - 尚未支援,但預期未來會進入 GA 狀態。

語言

函數應用程式中的所有函式都必須共用相同語言。 建立應用程式時,在函數應用程式中選擇函式的語言。 函數應用程式的語言會維持在 FUNCTIONS_WORKER_RUNTIME 設定中,而且不應該在有現有函式時變更。

下表顯示 Azure Functions 支援的 .NET 版本。 在文章頂端選取您慣用的開發語言。

支援的 .NET 版本取決於 Functions 執行階段版本和您選擇的執行模型:

您的函數程式碼在個別的 .NET 背景工作處理序中執行。 搭配支援的 .NET 和 .NET Framework 版本使用。 若要深入了解,請參閱開發 .NET 隔離式背景工作處理序函數

支援的版本 支援層級 預期的社群 EOL 日期
.NET 8 GA 2026 年 11 月 10 日
.NET 6 GA 2024 年 11 月 12 日
.NET Framework 4.8 GA 請參閱原則

.NET 7 先前在隔離式背景工作角色模型上受到支援,但於 2024 年 5 月 14 日終止正式支援。

如需詳細資訊,請參閱在隔離式背景工作處理序中執行 C# Azure Functions 的指南

下表顯示 JAVA 函式支援的語言版本。 在文章頂端選取您慣用的開發語言。

支援的版本 支援層級 預期的社群 EOL 日期
JAVA 21 (僅限 Linux) 預覽​​ 2028 年 9 月
JAVA 17 GA 2027 年 9 月
Java 11 GA 2027 年 9 月
Java 8 GA 2026 年 11 月 30 日

如需詳細資訊,請參閱 Azure Functions JAVA 開發人員指南

下表顯示 Node.js 函式支援的語言版本。 在文章頂端選取您慣用的開發語言。

支援的版本 支援層級 預期的社群 EOL 日期
Node.js 20 GA 2026 年 4 月 30 日
Node.js 18 GA 2025 年 4 月 30 日
Node.js 16 GA 2023 年 9 月 11 日*
Node.js 14 GA 2023 年 4 月 30 日*

*Functions 的支援延伸至 2024 年 6 月 30 日。

透過轉譯至 JavaScript 支援 TypeScript。 如需詳細資訊,請參閱 Azure Functions Node.js 開發人員指南 (部分機器翻譯)。

下表顯示 PowerShell 函式支援的語言版本。 在文章頂端選取您慣用的開發語言。

支援的版本 支援層級 預期的社群 EOL 日期
PowerShell 7.2 GA 2024 年 11 月 8 日

如需詳細資訊,請參閱 Azure Functions PowerShell 開發人員指南 (部分機器翻譯)。

下表顯示 Python 函式支援的語言版本。 在文章頂端選取您慣用的開發語言。

支援的版本 支援層級 預期的社群 EOL 日期
Python 3.11 GA 2027 年 10 月
Python 3.10 GA 2026 年 10 月
Python 3.9 GA 2025 年 10 月
Python 3.8 GA 2024 年 10 月

如需詳細資訊,請參閱 Azure Functions Python 開發人員指南 (部分機器翻譯)。

如需語言支援變更規劃的相關資訊,請參閱 Azure 藍圖

如需舊版 Functions 執行階段語言版本的相關資訊,請參閱已淘汰的執行階段版本

在特定版本上執行

FUNCTIONS_EXTENSION_VERSION 應用程式設定會控制 Azure 中所發佈應用程式所使用的 Functions 執行階段版本。 在某些情況下,某些語言可能會套用其他設定。

根據預設,經由 Azure CLI 或從 Visual Studio 工具在 Azure 入口網站中建立的函式應用程式會設為 4.x 版。 您可以視需要修改此版本。 您只能在建立函數應用程式之後,但在新增任何函式之前,將執行階段版本降級為 1.x 版。 即使具有現有函式的應用程式,也允許更新為較新的主要版本。

移轉現有的函式應用程式

當您的應用程式具有現有函式時,您必須先採取預防措施,才能移至較新的主要執行階段版本。 下列文章詳細說明主要版本之間的重大變更,包括特定語言的重大變更。 其也會為您提供成功移轉現有函式應用程式的逐步指示。

在 Azure 中變更應用程式版本

使用下列主要執行階段版本值:

執行階段目標
~4 4.x
~1 1.x

重要

請勿任意變更此應用程式設定,因為其他應用程式設定會變更,而且可能需要變更您的函式程式碼。 針對現有的函式應用程式,遵循移轉指示

釘選到特定次要版本

若要解決函數應用程式在最新主要版本上執行時可能發生的問題,您必須將應用程式暫時釘選至特定的次要版本。 釘選可讓您有時間使應用程式在最新的主要版本上正確執行。 釘選到次要版本的方式在 Windows 和 Linux 之間有所不同。 若要深入了解,請參閱如何設定目標 Azure Functions 執行階段版本

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

延伸模組最低版本

嚴格來說,繫結延伸模組版本與 Azure Functions 執行階段版本之間沒有相互關聯。 但從 4.x 版開始,Azure Functions 執行階段會針對所有觸發程式和繫結延伸模組強制執行最低版本。

如果您收到套件未符合最低必要版本的警告,您應該像平常一樣將該 NuGet 套件更新為最低版本。 您可以在連結的設定文件中找到 Azure Functions v4.x 中使用的延伸模組最低版本需求。

針對 C# 指令碼,更新 host.json 中的延伸模組套件組合參考,如下所示:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

嚴格來說,延伸模組套件組合版本與 Azure Functions 執行階段版本之間沒有相互關聯。 但從 4.x 版開始,Azure Functions 執行階段會針對所有延伸模組套件組合強制執行最低版本。

若您收到延伸模組套件組合版本不符合最低必要版本的相關警告,請更新 host.json 中現有的延伸模組套件組合參考,如下所示:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

若要深入了解延伸模組套件組合,請參閱延伸模組套件組合

已淘汰的版本

這些版本的 Functions 執行階段已於 2022 年 12 月 13 日終止延伸支援。

版本 目前的支援層級 先前的支援層級
3.x 不支援 GA
2.x 不支援 GA

您應該儘快將應用程式移轉至 4.x 版,以取得完整支援。 如需一組完整的語言特定移轉指示,請參閱將應用程式移轉至 Azure Functions 4.x 版

您仍然可以從 CI/CD DevOps 管線建立及部署使用 2.x 和 3.x 版的應用程式,而且所有現有的應用程式都會繼續執行,而不會發生中斷性變更。 不過,應用程式不符合新功能、安全性修補檔和效能最佳化的資格。 您只能在將應用程式升級至 4.x 版之後,取得相關的服務支援。

2.x 和 3.x 版終止支援是因為對 .NET Core 3.1 的支援已終止,因為其將 .NET Core 3.1 作為核心相依性。 此需求會影響所有 Azure Functions 支援的語言

在本機開發的應用程式版本

您可以對函數應用程式進行下列更新,以在本機變更目標版本。

Visual Studio 執行階段版本

在 Visual Studio 中,您會在建立專案時選取執行階段版本。 適用於 Visual Studio 的 Azure Functions 工具支援兩個主要執行階段版本。 根據專案設定進行偵錯和發佈時,會使用正確的版本。 版本設定會在 .csproj 檔案中的下列屬性中定義:

<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>

如果您使用隔離式背景工作角色模型,您可以選擇 net8.0net6.0net48 作為目標框架。 如果您使用內含式模型,則只能選擇 net6.0,而且必須包含至少設定為 4.0.0Microsoft.NET.Sdk.Functions 延伸模組。

.NET 7 先前在隔離式背景工作角色模型上受到支援,但於 2024 年 5 月 14 日終止正式支援。

Visual Studio Code 和 Azure Functions Core Tools

Azure Functions Core Tools 除了用於命令列開發之外,也會供適用於 Visual Studio Code 的 Azure Functions 擴充功能使用。 如需詳細資訊,請參閱安裝 Azure Functions Core Tools

針對 Visual Studio Code 開發,您可能必須一併更新 azureFunctions.projectRuntime 的使用者設定,以符合所安裝工具的版本。 此設定也會更新函數應用程式建立期間所使用的範本和語言。

繫結

從 2.x 版開始,執行階段使用新的繫結擴充性模型,該模型提供下列優點:

  • 支援第三方繫結延伸模組。

  • 分開處理執行階段和繫結。 此變更可讓繫結延伸模組個別建立版本和發行。 舉例來說,您可以選擇升級至依賴較新版基礎 SDK 的延伸模組版本。

  • 較輕便的執行環境,執行階段只會知道及載入使用中的繫結。

除了 HTTP 和計時器觸發程序之外,所有繫結都必須以明確方式新增至函數應用程式專案,或在入口網站中註冊。 如需詳細資訊,請參閱註冊繫結延伸模組

下表顯示每個執行階段版本所支援的繫結。

此表顯示主要版本的 Azure Functions 執行階段中所支援的繫結:

類型 1.x1 2.x 和更新版本2 觸發程序 輸入 輸出
Blob 儲存體
Azure Cosmos DB
Azure 資料總管
Azure SQL
Dapr4
Event Grid
事件中樞
HTTP 和 Webhook
IoT 中樞
Kafka3
行動應用程式
通知中樞
佇列儲存體
Redis
RabbitMQ3
SendGrid
服務匯流排
SignalR
表格儲存體
計時器
Twilio

1對 1.x 版 Azure Functions 執行階段的支援將於 2026 年 9 月 14 日結束。 強烈建議您將應用程式移轉至 4.x 版,以取得完整支援。

2 從 2.x 版執行階段開始,必須註冊 HTTP 和計時器以外的所有繫結。 請參閱註冊繫結延伸模組

3 觸發程序在取用方案中不受支援。 需要執行階段驅動的觸發程序

4 僅在 Kubernetes、IoT Edge 和其他自我裝載模式中受到支援。

函數應用程式逾時持續時間

函數應用程式內的函式逾時持續時間是由 host. json 專案檔中的 functionTimeout 屬性所定義。 此屬性特別適用於函式執行。 觸發程序啟動函式執行之後,函式必須在逾時持續時間內傳回/回應。 如需詳細資訊,請參閱改善Azure Functions 效能語可靠性

下表顯示特定方案的預設值和最大值 (以分鐘為單位):

計劃 預設 最大值 1
取用方案 5 10
進階方案 302 無限制的3
專用方案 302 無限制的3

1 不論函數應用程式逾時設定為何,230 秒是 HTTP 觸發函式回應要求所能花費的最大時間量。 這是因為 Azure Load Balancer 的預設閒置逾時。 對於較長的處理時間,請考慮使用 Durable Functions 非同步模式延遲實際工作並傳回立即回應
2 1.x 版 Functions 執行階段的預設逾時為「無限制」
3 保證最多 60 分鐘。 OS 和執行階段修補、弱點修補和行為調整仍然可以取消函式執行,因此請確保撰寫強固的函式

下一步

如需詳細資訊,請參閱以下資源: