共用方式為


將函式應用程式從 Azure 服務匯流排延伸模組 4.x 版移轉至 5.x 版

本文強調使用 Azure 服務匯流排延伸模組 4.x 版升級現有 Azure Functions 應用程式的考慮,以使用較新的延伸模組 5.x 版。 從 Azure 服務匯流排延伸模組的 4.x 版移轉至 5.x 版會對應用程式帶來中斷性變更。

重要

在 2025 年 3 月 31 日,Azure 服務匯流排延伸模組 4.x 版將會淘汰。 延伸模組和所有使用延伸模組的應用程式都會繼續運作,但 Azure 服務匯流排將停止為此延伸模組提供進一步的維護和支援。 建議您移轉至最新 5.x 版的延伸模組。

本文將逐步引導您完成函式應用程式的移轉,以在 Azure 服務匯流排延伸模組的 5.x 版上執行。 因為專案升級指示與語言相關,所以請務必從文章頂端的選取器中選擇您的開發語言。

更新延伸模組版本

.NET Functions 使用安裝在專案中作為 NuGet 套件的延伸模組。 視 Functions 程序模型而定,要更新的 NuGet 套件會有所不同。

函式程序模型 Azure 服務匯流排延伸模組 建議的版本
內含式模型 Microsoft.Azure.WebJobs.Extensions.ServiceBus >= 5.13.4
隔離式背景工作角色模型 Microsoft.Azure.Functions.Worker.Extensions.ServiceBus >= 5.14.1

更新 .csproj 專案檔,以針對程序模型使用最新的延伸模組版本。 下列 .csproj 檔案使用第 5 版的 Azure 服務匯流排延伸模組。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.21.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.ServiceBus" Version="5.16.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.16.4" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

更新延伸模組組合

根據預設,non-.NET 函式應用程式會使用延伸模組組合,來安裝繫結延伸模組。 Azure 服務匯流排第 5 版延伸模組是延伸模組套件組合第 4 版的一部分。

若要更新應用程式以使用最新的延伸模組組合,請更新 host.json。 下列 host.json 檔案使用第 4 版的延伸模組套件組合。

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

修改函式程式碼

Azure Functions 的 Azure 服務匯流排延伸模組第 5 版建置在 Azure.Messaging.ServiceBus SDK 第 3 版之上,移除了對 Message 類別的支援。 改用 ServiceBusReceivedMessage 類型,以便從服務匯流排佇列和訂用帳戶接收訊息中繼資料。

下一步