Amazon SQS Connector 5.10 の例 - Mule 4

この例は、メタデータと共にメッセージを Amazon SQS キューに送信し、キューから受信します。この例には次の 2 つのフローが含まれます。

  1. 最初のフローは、メタデータと共にメッセージを送信し、キューのメッセージ数を取得して、メッセージが送信されたことを確認する。

  2. 2 番目のフローは、メッセージを受信し、メッセージ本文を記録する。

sqs-message-flow

この例では一部の項目値に変数を使用しています。コードで変数をそれらの値に置き換えるか、​src/main/resources/mule-artifact.properties​ ファイルで各変数の値を指定できます。

この例を試す前に、Anypoint Studio (Studio) にアクセスし、[Mule Palette (Mule パレット)] ビューに Amazon SNS と Amazon SQS のエントリが表示されていることを確認します。表示されていない場合、​「Amazon SQS Studio 設定」​の指示に従って両方のコネクタをインストールします。

メッセージを送信するフローを作成する

例を開始するには、メッセージをキューに送信するフローを作成します。フローの作成には、新しい Mule プロジェクトの作成と、Listener コンポーネント、Transform Message コンポーネント、SQS Send Message 操作、Logger コンポーネント、SQS Get approximate number of messages 操作、および 2 番目の Logger コンポーネントの設定が含まれます。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] で​「HTTP」​を検索し、​Listener​ 操作を選択します。

    select-listener

  3. Listener​ 操作をキャンバスにドラッグします。

  4. Listener​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  5. デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/​ に設定します。

    http-properties

Transform Message コンポーネントを追加してメタデータを添付する

  1. [Mule Palette (Mule パレット)] ビューで、​「Transform Message」​を検索します。

    select-transform
  2. Transform Message​ コンポーネントをキャンバスの ​Listener​ コンポーネントの右にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    {
    	delaySeconds: 0,
    	body: "Hello World",
    	messageAttributes: {
    		"AccountId": {
    			"stringValue" : "000123456",
    			"dataType" : "String.AccountId"
    		} as Object {
    			class: "org.mule.extension.sqs.api.model.MessageAttributeValue"
    		},
    		"NumberId": {
    			"stringValue" : "230.000000000000000001",
    			"dataType" : "Number"
    		} as Object {
    			class : "org.mule.extension.sqs.api.model.MessageAttributeValue"
    		}
    	} as Object {
    		class: "java.util.HashMap"
    	}
    } as Object {
    	class: "org.mule.extension.sqs.api.model.Message"
    }
    dataweave

    次のスクリーンショットは、Studio の ​[Output (出力)]​ セクションに表示される XML を示しています。

    transform-message

SQS Send Message 操作を追加および設定する

  1. [Mule Palette (Mule パレット)]​ ビューで​「SQS」​を検索し、​[Send message]​ 操作を選択します。

    select-send-message
  2. Send message​ 操作をキャンバスの ​Transform Message​ コンポーネントの右にドラッグします。

  3. Send message​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. 次のようにグローバル要素を設定します。

    項目

    Name (名前)

    設定の参照に使用される名前。

    Session Token (セッショントークン)

    一時的なセキュリティログイン情報を検証するために使用するセッショントークン。

    Access Key (アクセスキー)

    アカウントを所有するユーザーを一意に識別する英数字のテキスト文字列

    Secret Key (シークレットキー)

    パスワードの役割を果たすキー。

    Region Endpoint (リージョンエンドポイント)

    キューリージョン

    SQS Endpoint (SQS エンドポイント)

    Amazon VPC サポート用の SQS エンドポイント。

    Default Global Queue URL (デフォルトのグローバルキュー URL)

    デフォルトの Amazon SQS キュー URL ログイン情報。

    次に例を示します。

    send-global-config
  5. [Configuration XML (設定 XML)]​ タブを選択して、対応する XML を表示します。

    <sqs:config name="Amazon_SQS_Configuration" doc:name="Amazon SQS Configuration" doc:id="a851a77e-7837-463a-a969-4436c29aed70" defaultQueueUrl="${sqs.queueUrl}">
    	<sqs:basic-connection
             accessKey="${sqs.sessionToken}"
             secretKey="${sqs.queueARN}"
             sqsEndpoint="${sqs.endpoint}">
    	</sqs:basic-connection>
    </sqs:config>
    xml
  6. プロパティウィンドウで次の各項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前

    Connector Configuration (コネクタ設定)

    作成したばかりのグローバル設定

    Message (メッセージ)

    payload

    Queue url (キュー URL)

    Amazon SQS キュー URL。

    指定した場合、この項目の値は ​[Global Configuration Elements (グローバル設定要素)]​ ウィンドウの ​[Default Global Queue URL (デフォルトのグローバルキュー URL)]​ 項目の値よりも優先されます。

    次に例を示します。

    send-message

Mule コンソールに応答を出力するロガーを追加する

  1. [Mule Palette (Mule パレット)] ビューで、​「Logger」​を検索します。

  2. コンポーネントをキャンバスの ​[Send Message]​ コンポーネントの右にドラッグします。

  3. 次の項目を設定します。

    項目

    Display Name (表示名)

    ロガーの名前 (​Log Response​ など)

    Message (メッセージ)

    Sent Message: `​#[payload]​`

    Level (レベル)

    INFO (Default) (INFO (デフォルト))

    次に例を示します。

    Logger

キュー内のメッセージ数を取得する

  1. [Mule Palette (Mule パレット)] ビューで、​「Amazon SQS」​を検索します。

  2. [Get approximate number of messages]​ 操作を選択し、キャンバスの ​[Logger]​ コンポーネントの右にドラッグします。

  3. Amazon ​Queue url​ を次のように設定します。

    Amazon キュー URL 項目のサンプル値
  4. 次の項目を設定します。

    • Display Name (表示名)
      Logger コンポーネントの名前

    • Message (メッセージ)
      Mule ログメッセージを指定する文字列または DataWeave 式

    • Level (レベル)
      ログレベルを設定します。デフォルト値は ​INFO​ です。

      次の画像は、項目のサンプル値を示しています。

      ログメッセージ数の設定値の例

メッセージを受信するフローを作成する

最後に、メッセージを受信して記録し、キューから削除する別のフローを作成します。

  1. [Mule Palette (Mule パレット)] ビューで​「SQS」​を検索し、​[Receive messages]​ 操作を選択します。

    select-receive-messages
  2. [Receive messages]​ 操作をキャンバスにドラッグします。

  3. プロパティウィンドウで次の各項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前

    Connector Configuration (コネクタ設定)

    以前に作成したグローバル設定 ​Amazon_SQS_Configuration​。大きなメッセージを受信するには、​Amazon_SQS_Large_Payload_Configuration​ を使用します。

    Number of Messages (メッセージ数)

    10

    Queue url (キュー URL)

    Amazon SQS キュー URL。

    指定した場合、この項目の値は ​[Global Configuration Elements (グローバル設定要素)]​ ウィンドウの ​[Default Global Queue URL (デフォルトのグローバルキュー URL)]​ 項目の値よりも優先されます。

    次に例を示します。

    receive-message
  4. Mule コンソールにメッセージを表示するロガーを追加します。

  5. 次の項目値を使用してロガーを設定します。

    項目

    Display Name (表示名)

    任意の名前

    Message (メッセージ)

    `​#[payload]​`

    Level (レベル)

    INFO (Default) (INFO (デフォルト))

Mule アプリケーション XML コードの例

このユースケース例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを XML エディターに貼り付けます。必要に応じて、環境に合わせて値を変更します。