Azure Service Bus の最新の Java メッセージング クライアントは AMQP を使用します。プロキシを構成する場合、そのビルダーには AMQP_WEB_SOCKETS が必要です。

azure-messaging-servicebus 7.18.0 では、送信側を次のように構築します。

var address = new java.net.Proxy(
    java.net.Proxy.Type.HTTP,
    new java.net.InetSocketAddress("proxy.example", 8080));

var proxy = new com.azure.core.amqp.ProxyOptions(
    com.azure.core.amqp.ProxyAuthenticationType.BASIC,
    address, proxyUser, proxyPassword);

var sender = new com.azure.messaging.servicebus.ServiceBusClientBuilder()
    .connectionString(serviceBusConnectionString)
    .transportType(com.azure.core.amqp.AmqpTransportType.AMQP_WEB_SOCKETS)
    .proxyOptions(proxy)
    .sender()
    .queueName(queueName)
    .buildClient();

アカウントの変数は Basic を受け付けるプロキシに対して認証されます。接続文字列とキュー名は引き続き Service Bus リソースを識別します。作成した送信側は想定された有効期間の間保持し、アプリケーションが使い終わったら閉じます。

ここでは com.azure.core.amqp.ProxyOptions を使用します。Azure の HTTP スタックには似た名前の別のプロキシ オプション クラスがありますが、このビルダーが受け付ける型ではありません。

これによりメッセージング接続が構成されます。独立して作成した ID 資格情報を使用するアプリケーションでは、その資格情報のトークン用 HTTP トランスポートも構成する必要がある場合があります。

古い Azure SDK 0.9 の例は別のクライアント世代を指しています。その構成定数や一般的な HTTP プロパティが最新の AMQP ビルダーを説明していると推測しないでください。

関連記事