Service Bus の名前空間とエンティティの動的なプロビジョニング

Azure Service Bus には、Service Bus の名前空間とエンティティを動的にプロビジョニングできるライブラリが用意されています。 これにより、複雑なデプロイとメッセージング シナリオが可能になり、プロビジョニングするエンティティをプログラムを使用して決定できます。

概要

Azure Service Bus のリソースをプログラムで管理する方法は 2 つあります。 1 つ目は Azure Resource Manager ベースのライブラリを使用する方法です。この方法では、名前空間、キュー、トピック、サブスクリプション、ルール、SAS ポリシーを管理できます。 Azure Resource Manager ベースのライブラリでは、Microsoft Entra ID を介した認証がサポートされますが、接続文字列を使った認証はサポートされません。 2 つ目の方法は、メッセージの送受信に使用するものと同じ Service Bus クライアント ライブラリを利用する方法です。 クライアント ライブラリには、既存の名前空間でキュー、トピック、サブスクリプション、ルールを管理するのに役立つ API も用意されています。 このライブラリでは接続文字列を使用した認証がサポートされています。 採用する方法を決めるときには以下を検討します。

Azure Resource Manager ベースのライブラリは、キュー、トピック、サブスクリプションなどの Service Bus の名前空間とエンティティを管理する場合に、Azure portal、CLI、PowerShell と同じ機能を提供します。管理操作に Azure portal、CLI、または PowerShell を使用し、動的な方法を使用する場合、これらのライブラリの方が優れた選択肢になる可能性があります。

ただし、メッセージの送受信などのサービス固有の操作に Service Bus クライアント ライブラリを既に使用していて、Service Bus のエンティティも管理する必要がある場合、同じライブラリを使用する方が便利な場合があります。 クライアント ライブラリには、Azure Resource Manager ベースのライブラリによって提供される管理機能のサブセットを提供する ServiceBusAdministrationClient があります (これは以前のライブラリでは ServiceBusManagementClient と呼ばれます)。 Azure Resource Manager ベースのライブラリでは Service Bus の名前空間とエンティティの両方を管理できますが、クライアント ライブラリでは既存の名前空間内のエンティティのみを管理できますが、名前空間自体は管理できません

Azure Resource Manager ベースのライブラリを使用して管理する

Azure Resource Manager ベースのライブラリを使用すると、名前空間、キュー、トピック、サブスクリプション、ルール、SAS ポリシーを管理できます。 Microsoft Entra ID を他認証 "のみ" がサポートされます。接続文字列はサポートされません。

Language Package ドキュメント サンプル
.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 ライブラリ

Fluent バージョンの Azure Resource Manager ベースのライブラリがあります。

Language Package ドキュメント
.NET Microsoft.Azure.Management.ServiceBus.Fluent Microsoft.Azure.Management.ServiceBus.Fluent の API リファレンス
Java azure-resourcemanager-servicebus com.azure.resourcemanager.servicebus.fluent の API リファレンス

Service Bus クライアント ライブラリを使用して管理する

メッセージの送受信のような操作に使用される Service Bus クライアント ライブラリを使用して、既存の Service Bus の名前空間でキュー、トピック、サブスクリプション、ルールを管理することもできます。 この機能は、最新ライブラリの ServiceBusAdministrationClient および以前のライブラリの ServiceBusManagementClient を介して使用できます。 最新ライブラリの使用を強くお勧めします。

最新の Service Bus ライブラリ

Language Package ドキュメント サンプル
.NET Azure.Messaging.ServiceBus ServiceBusAdministrationClient .NET
Java azure-messaging-servicebus ServiceBusAdministrationAsyncClientServiceBusAdministrationClient Java
JavaScript @azure/service-bus ServiceBusAdministrationClient JavaScript/TypeScript
Python azure-servicebus ServiceBusAdministrationClient Python

以前の Service Bus ライブラリ

Language Package ドキュメント サンプル
.NET Microsoft.Azure.ServiceBus ManagementClient .NET
Java azure-mgmt-servicebus ManagementClientAsyncManagementClient Java

2026 年 9 月 30 日に、Azure SDK ガイドラインに準拠していない Azure Service Bus SDK ライブラリ WindowsAzure.ServiceBus、Microsoft.Azure.ServiceBus、および com.microsoft.azure.servicebus は廃止されます。 SBMP プロトコルのサポートも終了するため、2026 年 9 月 30 日以降、このプロトコルを使用できなくなります。 重要なセキュリティ更新プログラムと強化された機能を提供する最新の Azure SDK ライブラリに、その日付より前に移行します。

以前のライブラリは 2026 年 9 月 30 日以降も引き続き使用できますが、Microsoft から公式のサポートと更新プログラムは提供されなくなります。 詳細については、サポート廃止のお知らせに関するページを参照してください。

次のステップ

  • 最新の Service Bus ライブラリを使用してキューとの間でメッセージを送受信する: .NETJavaJavaScriptPython
  • 最新の Service Bus ライブラリを使用してトピックにメッセージを送信し、サブスクリプションからメッセージを受信する: .NETJavaJavaScriptPython