Amazon SQS Connector 5.11 の追加設定情報 - Mule 4

ポーリング動作のグローバルおよびローカルでの制御、プライマリノードのみでのメッセージの受信、FIFO キューの作成、大容量のペイロードの管理などの追加機能を設定します。

ポーリング動作の制御

バージョン 5.9 以降、Receive Messages ソースと Read 操作のデフォルトの動作では、ロングポーリングが使用されます。

  • ロングポーリングでは、メッセージが存在する場合、SQS Connector はできるだけ早くクエリ結果を返します。

    それ以外の場合、SQS Connector は指定された秒数待機してから、空の応答を返します。

  • ショートポーリングでは、空の応答を返す場合でも、SQS Connector は常にできるだけ早くクエリ結果を返します。

ロングポーリングは、スループットに影響することなくネットワーク要求の数を減らすことができます。

ポーリング動作は、グローバルに、または個々のソースおよび操作レベルで制御できます。

ポーリング動作のグローバルな制御

ポーリング動作をグローバルに制御するには、Receive Messages ソースか Read 操作、またはその両方で、グローバル要素設定画面の [Advanced (詳細)] タブにある [Default Wait Time (デフォルトの待機時間)] 項目を使用します。

  • ロングポーリングを使用するには、この項目を ​1​ ~ ​20​ の値に設定します。ロングポーリングでは、すぐに使用できるメッセージがある場合、コネクタはクエリ結果をすぐに返します。それ以外の場合、コネクタはメッセージが追加されるまで指定された秒数待機してから、空の応答を返します。

  • ショートポーリングを使用するには、この項目を ​0​ に設定します。ショートポーリングでは、空の応答を返す場合でも、コネクタは常にできるだけ早くクエリ結果を返します。

次のスクリーンショットでは、[Default Wait Time (デフォルトの待機時間)] 項目が ​20​ に設定されています。この値は、ロングポーリングを使用し、空の応答を返す前に 20 秒待機するようにコネクタに指示します。

[Default Wait Time (デフォルトの待機時間)] 設定

ポーリング動作のローカルな制御

ポーリング動作をローカルに制御するには、Receive Messages ソースのプロパティウィンドウか Read 操作のプロパティウィンドウ、またはその両方で、[Advanced (詳細)] タブの [Wait Time (待機時間)] 項目を使用します。

プライマリノードのみでのメッセージの受信

Receive Messages ソースのデフォルトの動作は、クラスターモードで実行しているときにすべてのノードでメッセージを受信することです。

アプリケーションがプライマリノードのみでメッセージを受信するようにする場合は、次の手順を実行します。

  1. Studio で、フローの ​[Receive Messages]​ ソースを選択します。

  2. [Receive messages]​ タブの ​[Advanced (詳細)]​ サブタブで、​[Primary node only (プライマリノードのみ)]​ チェックボックスをオンにします。

    [Primary node only (プライマリノードのみ)] オプションが選択されたメッセージ設定の [Advanced (詳細)] タブ

複数ノードクラスターの動作は、選択した SQS キュー種別によって異なります。標準キューを使用している場合、SQS はメッセージが少なくとも 1 回配信されることを保証します。ただし、重複するメッセージがキューに追加される可能性があります。キュー内のメッセージの重複を回避するため、FIFO (先入れ先出し) キューを使用して、メッセージが 1 回のみ配信され、コンシューマーがメッセージを処理して削除するまで使用可能にすることができます。

キュー種別についての詳細は、 「AWS SQS 標準キュー」​と 「AWS SQS FIFO (先入れ先出し) キュー」​を参照してください。

FIFO キューの作成

FIFO キューは、メッセージを送信時と同じ順序で配信します。

FIFO キューを作成するには、コネクタで ​Create queue​ 操作を使用して、​FifoQueue​ および ​ContentBasedDeduplication​ 項目値を ​true​ に設定します。

[queue name (キュー名)]​ 値の最後を ​.fifo​ 拡張子にします。例:
MyTestFIFOQueue.fifo​.

FIFO キューの作成時に、Amazon でサポートされている 15 リージョンのいずれかを選択します。

Amazon SQS Connector を使用してメッセージを FIFO キューに送信するときは、FIFO キューの作成時に使用したキュー URL とリージョン名を使用します。また、メッセージの送信時にコネクタ設定の ​message group id​ 属性に値を指定する必要もあります。

大容量のペイロードの管理

Amazon SQS Connector で大容量のメッセージペイロードを管理するためのサポートを有効にする手順は、次のとおりです。

  1. Studio で、キャンバスの下部にある ​[Global Elements (グローバル要素)]​ タブをクリックします。

  2. 以前に作成した ​[Amazon SQS Configuration (Amazon SQS 設定)]​ を選択して、​[Edit (編集)]​ をクリックします。

  3. [Connection (接続)]​ セクションで、​[Advanced (詳細)]​ タブをクリックします。

  4. [Large Payload Support (大容量のペイロードサポート)]​ 項目で、次のいずれかを選択します。

    • Expression or Bean Reference (式または bean 参照)

    • Edit Inline (インライン編集)

      大容量のペイロードサポートの設定
  5. パラメーターを次のように設定します。

    項目 説明

    Bucket (バケット)

    大容量のメッセージペイロードを保存するために使用するバケットの名前。バケットは、AWS S3 ですでに作成および設定されている必要があります。この機能を有効にすると、AWS S3 の使用で追加料金が発生します。

    Message Size Threshold (メッセージサイズしきい値)

    AWS S3 バケットにメッセージペイロードを保存するためのメッセージサイズしきい値。メッセージサイズしきい値のデフォルト値は 256 KB で、最大しきい値サイズの値は 256 KB です。最大メッセージサイズは 2 GB です。

    Message Size Threshold Unit (メッセージサイズしきい値単位)

    メッセージサイズしきい値のデータ単位を表します。

    これらの項目の値を指定すると、Amazon SQS Connector は大容量のペイロードメッセージを管理し、メッセージサイズしきい値を超えたときに指定された AWS S3 バケットに自動的に保存できます。

大容量のペイロードメッセージを含むメッセージの送受信の例については、​「大きなメッセージの送受信例」​を参照してください。

次のステップ

FIFO キューを作成したら、​「Amazon SQS Connector の例」​を試すことができます。