SpecializedQueueClientOptions クラス

定義

Azure Queue Storage に接続するための高度なクライアント構成オプションを提供します。

public class SpecializedQueueClientOptions : Azure.Storage.Queues.QueueClientOptions
type SpecializedQueueClientOptions = class
    inherit QueueClientOptions
Public Class SpecializedQueueClientOptions
Inherits QueueClientOptions
継承
SpecializedQueueClientOptions

コンストラクター

SpecializedQueueClientOptions(QueueClientOptions+ServiceVersion)

QueueClientOptions クラスの新しいインスタンスを初期化します。

プロパティ

Audience

Azure Active Directory (AAD) での認証に使用する対象ユーザーを取得または設定します。 共有キーを使用する場合、対象ユーザーは考慮されません。

(継承元 QueueClientOptions)
ClientSideEncryption

SDK 内のデータ暗号化の設定。 クライアント側の暗号化により、暗号化解除のために維持するために必要なメタデータがキュー メッセージに追加されます。

詳細については、「」を参照してください。

Diagnostics

クライアント診断オプションを取得します。

(継承元 ClientOptions)
EnableTenantDiscovery

TokenCredential を使用するようにクライアントが構成されている場合に、承認チャレンジによるテナント検出を有効にします。 有効にすると、クライアントは最初の承認されていない要求を試み、リソースの正しいテナントを検出するためにチャレンジを求めます。

(継承元 QueueClientOptions)
GeoRedundantSecondaryUri

アカウントが RA-GRS に対して有効になっている場合に、ストレージ アカウントの読み取り元となるセカンダリ Uri ストレージを取得または設定します。

このプロパティを設定すると、再試行中に GET またはHEAD要求にセカンダリ URI が使用されます。 セカンダリ Uri からの応答の状態が 404 の場合、リソースがまだ伝達されていない可能性があることを示すので、要求の後続の再試行ではセカンダリ Uri が再度使用されません。 それ以外の場合、後続の再試行はプライマリ URI とセカンダリ URI の間で交互に行われます。

(継承元 QueueClientOptions)
MessageEncoding

HTTP 要求と応答での表現方法 Body を決定するメッセージ エンコードを取得または設定します。 既定値は、None です。

(継承元 QueueClientOptions)
Retry

クライアントの再試行オプションを取得します。

(継承元 ClientOptions)
RetryPolicy

再試行に使用するポリシーを取得または設定します。 ポリシーが指定されている場合は、 プロパティの代わりにポリシーが Retry 使用されます。 型を RetryPolicy から派生して、再試行ロジックを完全に実装しなくても、既定の動作を変更できます。 がオーバーライドされた場合、またはカスタムHttpPipelinePolicyが指定されている場合Process(HttpMessage, ReadOnlyMemory<HttpPipelinePolicy>)は、実装者が値を更新するProcessingContext必要があります。

(継承元 ClientOptions)
Transport

HttpPipelineTransportこのクライアントに使用する 。 既定値は の HttpClientTransportインスタンスです。

(継承元 ClientOptions)
Version

QueueClientOptions.ServiceVersion要求を行うときに使用されるサービス API の を取得します。 詳細については、「詳細」を参照してください。 Azure Storage サービスのバージョン管理

(継承元 QueueClientOptions)

メソッド

AddPolicy(HttpPipelinePolicy, HttpPipelinePosition)

ポリシーを HttpPipeline クライアント パイプラインに追加します。 パイプライン内のポリシーの位置は、 パラメーターによって position 制御されます。 クライアント要求ごとにポリシーを 1 回実行する場合は、 を使用PerCallPerRetryして再試行ごとにポリシーを実行します。 の同じインスタンス policy は、この ClientOptions オブジェクトを使用して構築されたクライアントのすべてのパイプラインに追加されることに注意してください。

(継承元 ClientOptions)

イベント

MessageDecodingFailed

省略可能。 キューからメッセージを受信またはピークしたときに必要なタスクを実行しますが、デコードできません。

このようなメッセージは、特定QueueMessageEncodingのメッセージを予期しているが、予期された方法でメッセージをエンコードしていない別のプロデューサーがある場合QueueClientに、受信またはピークに設定できます。 つまり、キューにはエンコードが異なるメッセージが含まれています。

QueueMessageDecodingFailedEventArgsQueueClientには、メッセージReceivedMessagePeekedMessageを受信した本文と未加工の本文が含まれています。つまり、本文をキューから受信したとおりに検査できるようにデコードは試行されません。

では QueueClient 、キューからメッセージの削除は試行されません。 そのため、このような処理はイベント ハンドラー自体に含める必要があります。

ハンドラーは、同期と非同期の両方の受信 API とピーク API によって呼び出される可能性があります。 したがって、ハンドラーの実装は、使用されている API に合わせる QueueClient 必要があります。 ハンドラーを正しく実装する方法を参照してください SyncAsyncEventHandler<T> 。 次の例は、考えられるすべてのケースを調べるハンドラーを示しています。

QueueClientOptions queueClientOptions = new QueueClientOptions()
{
    MessageEncoding = QueueMessageEncoding.Base64
};

queueClientOptions.MessageDecodingFailed += async (QueueMessageDecodingFailedEventArgs args) =>
{
    if (args.PeekedMessage != null)
    {
        Console.WriteLine($"Invalid message has been peeked, message id={args.PeekedMessage.MessageId} body={args.PeekedMessage.Body}");
    }
    else if (args.ReceivedMessage != null)
    {
        Console.WriteLine($"Invalid message has been received, message id={args.ReceivedMessage.MessageId} body={args.ReceivedMessage.Body}");

        if (args.IsRunningSynchronously)
        {
            args.Queue.DeleteMessage(args.ReceivedMessage.MessageId, args.ReceivedMessage.PopReceipt);
        }
        else
        {
            await args.Queue.DeleteMessageAsync(args.ReceivedMessage.MessageId, args.ReceivedMessage.PopReceipt);
        }
    }
};

QueueClient queueClient = new QueueClient(connectionString, queueName, queueClientOptions);

(継承元 QueueClientOptions)

適用対象