你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

动态预配服务总线命名空间和实体

Azure 服务总线提供的库可以帮助动态预配服务总线命名空间和实体。 这样可以实现复杂的部署和消息方案,并能以编程方式确定要预配的实体。

概述

可以采用两种方法以编程方式管理 Azure 服务总线资源。 第一种是使用基于 Azure 资源管理器的库,这些库允许用户管理命名空间、队列、主题、订阅、规则和 SAS 策略。 基于 Azure 资源管理器的库支持通过 Microsoft Entra ID 进行身份验证,但不支持通过连接字符串进行身份验证。 第二种方法是利用用于发送和接收消息的同一个服务总线客户端库。 客户端库还提供 API 来帮助管理现有命名空间中的队列、主题、订阅和规则。 它们支持使用连接字符串进行身份验证。 在决定采用哪种方法时,请考虑下列事项。

在管理服务总线命名空间和实体(如队列、主题和订阅等)方面,基于 Azure 资源管理器的库提供与 Azure 门户、CLI 和 PowerShell 相同的功能。如果你一直使用 Azure 门户、CLI 或 PowerShell 进行管理操作,并且想要以动态方式执行该操作,则这些库可能是更好的选择。

但是,如果你已经在使用服务总线的客户端库来执行服务特定操作(如发送和接收消息),并且需要管理服务总线实体,则使用同一个库可能会更方便。 客户端库中有一个 ServiceBusAdministrationClient(在旧的库中名为 ServiceBusManagementClient)提供基于 Azure 资源管理器的库提供的管理功能的子集。 必须强调的是,虽然基于 Azure 资源管理器的库允许同时管理服务总线命名空间和实体,但客户端库只允许管理现有命名空间中的实体,而不允许管理命名空间本身。

使用基于 Azure 资源管理器的库进行管理

基于 Azure 资源管理器的库允许管理命名空间、队列、主题、订阅、规则和 SAS 策略。 它们仅支持通过 Microsoft Entra ID 进行身份验证,不支持连接字符串。

语言 程序包 文档 示例
.NET Azure.ResourceManager.ServiceBus Microsoft.Azure.Management.ServiceBus 的 API 参考 .NET
Java azure-resourcemanager-servicebus com.azure.resourcemanager.servicebus 的 API 参考 Java
JavaScript @azure/arm-servicebus API reference for @azure/arm-servicebus
Python azure-mgmt-servicebus azure-mgmt-servicebus 的 API 参考

Fluent .NET 和 Java 库

基于 Azure 资源管理器的库有 Fluent 版本。

语言 程序包 文档
.NET Microsoft.Azure.Management.ServiceBus.Fluent Microsoft.Azure.Management.ServiceBus.Fluent 的 API 参考
Java azure-resourcemanager-servicebus com.azure.resourcemanager.servicebus.fluent 的 API 参考

使用服务总线客户端库进行管理

用于发送和接收消息等操作的服务总线客户端库也可用于管理现有服务总线命名空间中的队列、主题、订阅和规则。 此功能可通过最新的库中的 ServiceBusAdministrationClient 和旧库中的 ServiceBusManagementClient 来获取。 强烈建议使用最新的库。

最新的服务总线库

语言 程序包 文档 示例
.NET Azure.Messaging.ServiceBus ServiceBusAdministrationClient .NET
Java azure-messaging-servicebus ServiceBusAdministrationAsyncClientServiceBusAdministrationClient Java
JavaScript @azure/service-bus ServiceBusAdministrationClient JavaScript/TypeScript
Python azure-servicebus ServiceBusAdministrationClient Python

旧的 Azure 服务总线库

语言 程序包 文档 示例
.NET Microsoft.Azure.ServiceBus ManagementClient .NET
Java azure-mgmt-servicebus ManagementClientAsyncManagementClient Java

2026 年 9 月 30 日,我们将停用 Azure 服务总线 SDK 库 WindowsAzure.ServiceBus、Microsoft.Azure.ServiceBus 和 com.microsoft.azure.servicebus,这些库不符合 Azure SDK 准则。 我们还将结束对 SBMP 协议的支持,因此在 2026 年 9 月 30 日之后,你将无法再使用此协议。 请在该日期之前迁移到最新的 Azure SDK 库,新库提供了关键安全更新和改进功能。

尽管 2026 年 9 月 30 日之后仍然可以使用较旧的库,但它们将不再获得 Microsoft 的官方支持和更新。 有关详细信息,请参阅支持停用公告

后续步骤