你当前正在访问 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 进行身份验证;它们不支持连接字符串。

语言 Package Documentation Samples
.NET Azure.ResourceManager.ServiceBus Microsoft.Azure.Management.ServiceBus 的 API 参考 .NET
Java azure-resourcemanager-servicebus com.azure.resourcemanager.servicebus 的 API 参考 爪哇岛
JavaScript @Azure/arm-servicebus API reference for @Azure/arm-servicebus
Python azure-mgmt-servicebus azure-mgmt-servicebus 的 API 参考

Fluent .NET 和 Java 库

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

语言 Package Documentation
.NET Microsoft.Azure.Management.ServiceBus.Fluent Microsoft.Azure.Management.ServiceBus.Fluent 的 API 参考
Java azure-resourcemanager-servicebus com.azure.resourcemanager.servicebus.fluent 的 API 参考

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

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

最新服务总线库

语言 Package Documentation Samples
.NET Azure.Messaging.ServiceBus ServiceBusAdministrationClient .NET
Java azure-messaging-servicebus ServiceBusAdministrationAsyncClientServiceBusAdministrationClient 爪哇岛
JavaScript @Azure/service-bus ServiceBusAdministrationClient JavaScript/TypeScript
Python azure-servicebus ServiceBusAdministrationClient Python

旧服务总线库

语言 Package Documentation Samples
.NET Microsoft.Azure.ServiceBus ManagementClient .NET
Java azure-mgmt-servicebus ManagementClientAsyncManagementClient 爪哇岛

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 的官方支持和更新。 有关详细信息,请参阅支持停用公告

后续步骤