.NET エージェントは、インストゥルメント化されたティアが Azure Service Bus を呼び出すと、Azure Service Bus バックエンドを自動的に検出します。エージェントは、クライアントライブラリ Azure.Messaging.ServiceBus
バージョン 7.0.0 以降をサポートしています。
Azure Service Bus イグジットポイントは、キューまたはトピックにメッセージを送信またはパブリッシュするメソッドです。Azure Service Bus エントリポイントは、キューまたはトピックからメッセージを受信するメソッドです。エージェントは、送信者の exit コールから受信者のエントリポイントへのキューの相関をサポートします。
イグジットポイントとバックエンドの命名
エージェントは、ダウンストリーム アプリケーションがメッセージまたはメッセージのバッチをキューまたはトピックに送信またはパブリッシュするときに、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)
を呼び出すと、他の受信パターンで使用できるエントリポイントを検出します。ただし、この場合、コールのタイミングには、メッセージの完了にかかった時間のみが反映されます。エージェントは、このパターンのメッセージの処理中に終了コールを検出しません。