将函数应用从 Azure 服务总线扩展版本 4.x 迁移到版本 5.x

本文重点介绍升级使用 Azure 服务总线扩展版本 4.x 的现有 Azure Functions 应用程序的注意事项,以使用较新的扩展版本 5.x。 从版本 4.x 迁移到 Azure 服务总线扩展版本 5.x 时,会对应用程序造成破坏性更改。

重要

Azure 服务总线 扩展 4.x 版本于 2025 年 3 月 31 日退役。 应用程序在使用该扩展时仍可继续运行,但它不再获得维护或支持。 迁移到使用支持 Azure.Messaging.ServiceBus 库的扩展版本5.x。 Microsoft.Azure.ServiceBus 4.x 版本使用的库于2026年9月30日退役。 有关该库停用的详情,请参见停用公告。

本文将引导你完成将函数应用迁移到在 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 文件使用的是 Azure 服务总线扩展版本 5。

<Project Sdk="Azure.Functions.Sdk/1.0.0">
  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="2.52.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.ServiceBus" Version="5.16.0" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

更新扩展捆绑包

默认情况下,非 .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 从服务总线队列和订阅接收消息元数据。

后续步骤