Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこの例は、メタデータと共にメッセージを Amazon SQS キューに送信し、キューから受信します。この例には次の 2 つのフローが含まれます。
最初のフローは、メタデータと共にメッセージを送信し、キューのメッセージ数を取得して、メッセージが送信されたことを確認する。
2 番目のフローは、メッセージを受信し、メッセージ本文を記録する。
この例では一部の項目値に変数を使用しています。コードで変数をそれらの値に置き換えるか、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 コンポーネントの設定が含まれます。
Studio で新しい Mule プロジェクトを作成します。
[Mule Palette (Mule パレット)] で「HTTP」を検索し、Listener 操作を選択します。
Listener 操作をキャンバスにドラッグします。
Listener 設定で、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
デフォルトを受け入れます。
[Path (パス)] 項目を /
に設定します。
[Mule Palette (Mule パレット)] ビューで、「Transform Message」を検索します。
Transform Message コンポーネントをキャンバスの Listener コンポーネントの右にドラッグします。
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 を示しています。
[Mule Palette (Mule パレット)] ビューで「SQS」を検索し、[Send message] 操作を選択します。
Send message 操作をキャンバスの Transform Message コンポーネントの右にドラッグします。
Send message 設定で、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
次のようにグローバル要素を設定します。
項目 | 値 |
---|---|
Name (名前) |
設定の参照に使用される名前。 |
Session Token (セッショントークン) |
一時的なセキュリティログイン情報を検証するために使用するセッショントークン。 |
Access Key (アクセスキー) |
アカウントを所有するユーザーを一意に識別する英数字のテキスト文字列 |
Secret Key (シークレットキー) |
パスワードの役割を果たすキー。 |
Region Endpoint (リージョンエンドポイント) |
キューリージョン |
SQS Endpoint (SQS エンドポイント) |
Amazon VPC サポート用の SQS エンドポイント。 |
Default Global Queue URL (デフォルトのグローバルキュー URL) |
デフォルトの Amazon SQS キュー URL ログイン情報。 |
次に例を示します。
[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
プロパティウィンドウで次の各項目を設定します。
項目 | 値 |
---|---|
Display Name (表示名) |
コネクタ操作の名前 |
Connector Configuration (コネクタ設定) |
作成したばかりのグローバル設定 |
Message (メッセージ) |
|
Queue url (キュー URL) |
Amazon SQS キュー URL。 指定した場合、この項目の値は [Global Configuration Elements (グローバル設定要素)] ウィンドウの [Default Global Queue URL (デフォルトのグローバルキュー URL)] 項目の値よりも優先されます。 |
次に例を示します。
[Mule Palette (Mule パレット)] ビューで、「Logger」を検索します。
コンポーネントをキャンバスの [Send Message] コンポーネントの右にドラッグします。
次の項目を設定します。
項目 | 値 |
---|---|
Display Name (表示名) |
ロガーの名前 ( |
Message (メッセージ) |
|
Level (レベル) |
INFO (Default) (INFO (デフォルト)) |
次に例を示します。
[Mule Palette (Mule パレット)] ビューで、「Amazon SQS」を検索します。
[Get approximate number of messages] 操作を選択し、キャンバスの [Logger] コンポーネントの右にドラッグします。
Amazon Queue url を次のように設定します。
次の項目を設定します。
Display Name (表示名)
Logger コンポーネントの名前
Message (メッセージ)
Mule ログメッセージを指定する文字列または DataWeave 式
Level (レベル)
ログレベルを設定します。デフォルト値は INFO
です。
次の画像は、項目のサンプル値を示しています。
最後に、メッセージを受信して記録し、キューから削除する別のフローを作成します。
[Mule Palette (Mule パレット)] ビューで「SQS」を検索し、[Receive messages] 操作を選択します。
[Receive messages] 操作をキャンバスにドラッグします。
プロパティウィンドウで次の各項目を設定します。
項目 | 値 |
---|---|
Display Name (表示名) |
コネクタ操作の名前 |
Connector Configuration (コネクタ設定) |
以前に作成したグローバル設定 |
Number of Messages (メッセージ数) |
10 |
Queue url (キュー URL) |
Amazon SQS キュー URL。 指定した場合、この項目の値は [Global Configuration Elements (グローバル設定要素)] ウィンドウの [Default Global Queue URL (デフォルトのグローバルキュー URL)] 項目の値よりも優先されます。 |
次に例を示します。
Mule コンソールにメッセージを表示するロガーを追加します。
次の項目値を使用してロガーを設定します。
項目 | 値 |
---|---|
Display Name (表示名) |
任意の名前 |
Message (メッセージ) |
|
Level (レベル) |
INFO (Default) (INFO (デフォルト)) |
このユースケース例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを XML エディターに貼り付けます。必要に応じて、環境に合わせて値を変更します。
<mule xmlns:sqs="http://www.mulesoft.org/schema/mule/sqs" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/sqs
http://www.mulesoft.org/schema/mule/sqs/current/mule-sqs.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<sqs:config name="Amazon_SQS_Configuration" doc:name="Amazon SQS Configuration"
defaultQueueUrl="${sqs.queueUrl}" >
<sqs:basic-connection accessKey="${sqs.accessKey}" secretKey="$sqs.secretKey}" region="us-east-1" sqsEndpoint="${sqs.endpoint}"/>
</sqs:config>
<flow name="sqs-send-messageFlow" >
<http:listener doc:name="Listener"
config-ref="HTTP_Listener_config"
path="/"/>
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
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"
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<sqs:send-message doc:name="Send message" configref="Amazon_SQS_Configuration"/>
<logger level="INFO"
doc:name="Log Response"
message="payload"/>
<sqs:get-approximate-number-of-messages
doc:name="Get approximate number of messages"
config-ref="Amazon_SQS_Configuration"
queueUrl="${sqs.queueUrl}"/>
<logger level="INFO" doc:name="Log Count"
message="Sent Message: `#[payload]`"/>
</flow>
<flow name="sqs-receive-message-flow" >
<sqs:receivemessages doc:name="Receive messages"
config-ref="Amazon_SQS_Configuration"/>
<logger level="INFO" doc:name="Log Receipt" />
</flow>
</mule>
xml