.NET エージェントは、インストゥルメント化されたティアが Azure Service Bus を呼び出すと、Azure Service Bus バックエンドを自動的に検出します。エージェントは、クライアントライブラリ Azure.Messaging.ServiceBus バージョン 7.0.0 以降をサポートしています。

Azure Service Bus イグジットポイントは、キューまたはトピックにメッセージを送信またはパブリッシュするメソッドです。Azure Service Bus エントリポイントは、キューまたはトピックからメッセージを受信するメソッドです。エージェントは、送信者の exit コールから受信者のエントリポイントへのキューの相関をサポートします。

Azure Service Bus トランスポート経由で NServiceBus を使用している場合は、「.NETのNServiceBusバックエンド」を参照してください。


イグジットポイントとバックエンドの命名

エージェントは、ダウンストリーム アプリケーションがメッセージまたはメッセージのバッチをキューまたはトピックに送信またはパブリッシュするときに、Azure Service Bus バックエンドのイグジットポイントを検出します。

エージェントは、次のプロパティを使用してバックエンドを識別します。

  • [Address]:Azure Service Bus サーバーへの URI アドレス。たとえば、//myservicebusname.servicebus.windows.net/ のようになります。
  • [Host]:Azure Service Bus サーバーのホスト。たとえば、myservicebusname.servicebus.windows.net のようになります。
  • [Path]:メッセージが送信またはパブリッシュされるキューまたはトピックの名前。たとえば、myqueuename のようになります。

エージェントはバックエンドに Address/Path という名前を付けます. (例:amqps://myservicebusname.servicebus.windows.net/myqueuename)。

エントリポイント

アップストリーム アプリケーションがキューまたはトピックからメッセージを受信すると、エージェントは Azure Service Bus エントリポイントを検出します。エージェントは、バックエンドと同様に、エントリポイントに Address/Path という名前を付けます。

エージェントは、ServiceBusProcessor メッセージハンドラの受信パターンをサポートします。

ServiceBusProcessor メッセージハンドラ

エージェントは、アプリケーションが ServiceBusProcessor を使用して構成されたメッセージハンドラを使用して着信メッセージを処理する次のパターンを検出します。この場合、コールのタイミングはハンドラ全体の実行時間を反映します。エージェントは、ハンドラ内で行われた終了コールも検出します

ServiceBusProcessor example

ServiceBusClient client = ...;
string queueName = ...;
await using ServiceBusProcessor processor = client.CreateProcessor(queueName);
processor.ProcessMessageAsync += args =>
{
    Console.WriteLine($"Message Received: {args.Message.Body}");
    // more logic if needed
};
C#

その他のパターン

エージェントは、アプリケーションが ServiceBusReceiver.CompleteMessageAsync(ServiceBusReceivedMessage,CancellationToken) を呼び出すと、他の受信パターンで使用できるエントリポイントを検出します。ただし、この場合、コールのタイミングには、メッセージの完了にかかった時間のみが反映されます。エージェントは、このパターンのメッセージの処理中に終了コールを検出しません。