---
schema_version: "1"
id: 57bd1b65ddd2cc1bf58e20f58abff0b7706dbca33672956ba3b228f319a4c3d8
title: 大きなメッセージの送受信例
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/amazon-sqs-connector-example-large-message.md
canonical_url: https://docs.mulesoft.com/jp/amazon-sqs-connector/5.8/amazon-sqs-connector-example-large-message
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 63fea77958596e7b764d7723ca656213ba849c5f5eaba57dcb84c98c618691e5
description: MuleSoft Documentation Site
release: "5.8"
latest: false
---
# 大きなメッセージの送受信例

大きなメッセージを送受信する次の例は、2 つのフローを示しています。

![大きなメッセージを送受信するための Mule フローが Studio に表示されている](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-large-message-flow.png)

1. 最初のフローは、大容量のメッセージペイロードを保存するために使用する AWS S3 バケットを参照する、大きなメッセージを Amazon キューに送信します。 フローを作成するには、新規 Mule プロジェクトを作成し、次のコンポーネントおよび操作を設定する必要があります。
    
    - **\[HTTP\] > \[Listener\]**​ コンポーネント: フローを開始
    - **\[File\] > \[Read\]**​ コンポーネント: ファイルを読み取る
    - **\[Transform Message\]**​ コンポーネント: 入力データを新しい出力構造または形式に変換
    - **\[Amazon SQS\] > \[Send Message\]**​ 操作: 指定されたキューにメッセージを送信
    - **\[Logger\]**​ コンポーネント: Mule コンソールに応答を表示。
    - **\[Amazon SQS\] > \[Get approximate number of message\]**​ 操作: 表示されるキューのおおよそのメッセージ数を取得
    - 2 番目の ​**\[Logger\]**​ コンポーネント: キューに表示されるおおよそのメッセージ数を表示
2. 大容量のメッセージペイロードの保存に使用する AWS S3 バケットを参照する Amazon キューに大きなメッセージを送信するフローを完了したら、メッセージを受信してメッセージ本文をログに記録するフローを作成します。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">この機能を有効にすると、AWS S3 の使用に関連する追加料金が発生します。</td></tr></tbody></table>

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

## [](#始める前に)始める前に

以下が必要です。

- Amazon SQS の対象リソースおよび Anypoint Platform へのアクセス権
- 256 KB より大きいペイロードを含むファイル
- 大容量のメッセージペイロードを保存するために使用する、AWS S3 で作成された AWS S3 バケット
- AWS Identity and Access Management (IAM) のログイン情報

## [](#大きなメッセージの送信)大きなメッセージの送信

### [](#create-mule-project)Mule プロジェクトを作成する

Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。

1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。
2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。

### [](#listener-を追加および設定する)Listener を追加および設定する

1. **\[Mule Palette (Mule パレット)\]**​ で​**「HTTP」**​を検索し、​**\[Listener\]**​ 操作を選択します。
    
    ![「Mule Palette (Mule パレット)」 ビューで 「HTTP」 の 「Listener」 が選択されている](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-select-listener.png)
2. **\[Listener\]**​ 操作をキャンバスにドラッグします。
3. **\[Listener\]**​ 設定で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にある ​**\[+\]**​ をクリックしてグローバル要素を追加します。
4. デフォルトを受け入れます。
5. **\[Path (パス)\]**​ 項目を ​`/largePayload`​ に設定します。
    
    ![HTTP Listener の一般設定項目](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-http-props.png)

### [](#file-read-コンポーネントを追加および設定する)File Read コンポーネントを追加および設定する

大容量のペイロードを読み取るため、​**\[File (ファイル)\] > \[Read (読み取り)\]**​ コンポーネントを追加および設定します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで​**「File (ファイル)」**​を検索し、​**\[File Read\]**​ 操作を選択します。
    
    ![select-file-read](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-file-read.png)
2. **\[File Read\]**​ コンポーネントをキャンバスの ​**\[Listener\]**​ コンポーネントの右にドラッグします。
3. **\[File Read\]**​ 設定で、​**\[File Configuration(ファイル設定)\]**​ 項目の横にある ​**\[+\]**​ をクリックしてグローバル要素を追加します。
4. **\[File Config (ファイル設定)\]**​ ウィンドウで、​**\[Connection (接続)\]**​ チェックボックスをオンにします。
5. **\[Working Directory (作業ディレクトリ)\]**​ で、このコネクタで使用されるすべての相対パスのルートディレクトリとして機能するディレクトリを入力します。  
    デフォルトは、ユーザーのホームディレクトリです。
    
    この例では、ファイルは Mule アプリケーションの ​`src/main/resources`​ から読み込まれます。
    
    ![File Read 操作のグローバル要素を設定する \[File Config (ファイル設定)\] ウィンドウ](_images/amazon-sqs-file-global-config.png)
6. **\[General (一般)\]**​ プロパティウィンドウで、次の項目を設定します。
    
    - **Display Name (表示名)**​  
        UI に表示するコネクタ操作の名前
    - **Connector Configuration (コネクタ設定)**​  
        **File Read**​ 操作で以前に作成したグローバル設定
    - **File Path (ファイルパス)**​  
        読み取るファイルへのパス
        
        次の画像は、項目のサンプル値を示しています。
        
        ![File Read 操作の一般的なプロパティ設定例の値](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-file-config.png)

### [](#transform-message-コンポーネントを追加および設定する)Transform Message コンポーネントを追加および設定する

メタデータを添付する ​**Transform Message**​ コンポーネントを追加します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**「Transform Message」**​を検索します。
    
    ![「Mule Palette (Mule パレット)」 ビューで 「Transform Message (Core)」 コンポーネントが選択されている](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-select-transform.png)
2. **\[Transform Message\]**​ コンポーネントをキャンバスの ​**\[Read\]**​ コンポーネントの右にドラッグします。
3. **\[Transform Message\]**​ 設定で、​**\[Output (出力)\]**​ セクションの括弧を次の XML で上書きします。
    
    ```dataweave
    {
    	delaySeconds: 0,
    	body: payload,
    	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"
    }
    ```
    
    次のスクリーンショットは、Studio の ​**\[Output (出力)\]**​ セクションに表示される XML を示しています。
    
    ![Transform Message コンポーネント出力](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-transform-message.png)

### [](#sqs-send-message-操作を追加および設定する)SQS Send Message 操作を追加および設定する

1. **\[Mule Palette (Mule パレット)\]**​ ビューで​**「Amazon SQS」**​を検索し、​**\[Send message\]**​ 操作を選択します。
    
    ![「Mule Palette (Mule パレット)」 ビューで 「Send Message」 操作が選択されている](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-select-send.png)
2. **\[Send message\]**​ 操作をキャンバスの ​**\[Transform Message\]**​ コンポーネントの右にドラッグします。
3. **\[Send message\]**​ 設定で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にある ​**\[+\]**​ をクリックしてグローバル要素を追加します。
4. **Send message**​ のグローバル要素を設定します。
    
    - **Name (名前)**​  
        設定の参照に使用される名前。この例では、​`Amazon_SQS_Large_Payload_Configuration`​ を使用します。
    - **Session Token (セッショントークン)**​  
        一時的なセキュリティログイン情報を検証するために使用するセッショントークン。
    - **Access Key (アクセスキー)**​  
        アカウントを所有するユーザーを一意に識別する英数字のテキスト文字列。
    - **Secret Key (シークレットキー)**​  
        パスワードの役割を果たすキー。
    - **Region Endpoint (リージョンエンドポイント)**​  
        キューリージョン。
    - **Default Global Queue URL (デフォルトのグローバルキュー URL)**​  
        デフォルトの Amazon SQS キュー URL ログイン情報。
        
        次の画像は、​**Send message**​ グローバル要素のサンプル値を示しています。
        
        ![Send 操作のサンプル値を含む \[Amazon SQS Configuration (mazon SQS 設定)\] ウィンドウ](_images/amazon-sqs-studio-global-config-new.png)
5. **\[Connection (接続)\]**​ セクションで、​**\[Advanced (詳細)\]**​ タブをクリックします。
6. **\[Large Payload Support (大容量のペイロードサポート)\]**​ 項目で、次のいずれかを選択します。
    
    - **Expression or Bean Reference (式または bean 参照)**
    - **Edit inline (インライン編集)**
        
        1. 項目を次のように設定します。
    - **Bucket (バケット)**​  
        大容量のメッセージペイロードを保存するために使用する AWS S3 バケットの名前。バケットは、AWS S3 ですでに作成および設定されている必要があります。この機能を有効にすると、AWS S3 の使用で追加料金が発生します。
    - **Message Size Threshold (メッセージサイズしきい値)**​  
        AWS S3 バケットにメッセージペイロードを保存するためのメッセージサイズしきい値。メッセージサイズしきい値のデフォルト値は 256 KB で、最大しきい値サイズの値は 256 KB です。最大メッセージサイズは 2 GB です。
    - **Message Size Threshold Unit (メッセージサイズしきい値単位)**​  
        メッセージサイズしきい値のデータ単位。
        
        次の画像は、​**\[Large payload support (大容量のペイロードサポート)\]**​ 項目のサンプル値を示しています。
        
        ![大容量のペイロードサポートの設定](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-studio-large-payload-support.png)
7. Studio キャンバスの下部にある ​**\[Configuration XML (設定 XML)\]**​ をクリックして、対応する XML を表示します。
    
    ```dataweave
    <sqs:config name="Amazon_SQS_Large_Configuration"
      doc:name="Amazon SQS Large Configuration"
    	defaultQueueUrl="${sqs.queueUrl}">
    	<sqs:basic-connection accessKey="${sqs.accessKey}"
    	secretKey="${sqs.secretKey}"
    	region="us-east-1"
    	sessionToken="${sqs.sessionToken}">
    	    <sqs:large-payload-support bucket="large-sqs-payload-bucket"
                messageSizeThreshold="256" messageSizeThresholdUnit="KB" />
        </sqs:basic-connection>
    </sqs:config>
    ```
8. プロパティウィンドウで次の各項目を設定します。
    
    - **Display Name (表示名)**​  
        UI に表示するコネクタ操作の名前
    - **Connector Configuration (コネクタ設定)**​  
        `Amazon_SQS_Large_Payload_Configuration`​ という名前の ​**Send message**​ 操作で以前に作成したグローバル設定
    - **Message (メッセージ)**​  
        `payload`
    - **Queue URL (キュー URL)**​  
        Amazon SQS キュー URL。指定した場合、この項目の値は ​**\[Global Configuration Elements (グローバル設定要素)\]**​ ウィンドウの ​**\[Default Global Queue URL (デフォルトのグローバルキュー URL)\]**​ 項目の値よりも優先されます。
        
        次の画像は、​**\[General (一般)\]**​ プロパティ設定を示しています。
        
        ![send-message](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-send-message.png)

### [](#logger-コンポーネントを追加および設定する)Logger コンポーネントを追加および設定する

**Logger**​ コンポーネントを追加して、Mule コンソールにメッセージ応答を表示するように設定します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**「Logger」**​を検索します。
2. **\[Logger\]**​ コンポーネントをキャンバスの ​**\[Send Message\]**​ コンポーネントの右にドラッグします。
3. 次の項目を設定します。
    
    - **Display Name (表示名)**​  
        Logger コンポーネントの名前
    - **Message (メッセージ)**​  
        Mule ログメッセージを指定する文字列または DataWeave 式
    - **Level (レベル)**​  
        ログレベルを設定します。デフォルト値は ​`INFO`​ です。
        
        次の画像は、項目のサンプル値を示しています。
        
        ![Logger](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-logger.png)

### [](#キュー内のメッセージ数を取得する)キュー内のメッセージ数を取得する

フロー内の 2 番目の ​**\[Logger\]**​ コンポーネントを設定して、キュー内のおおよそのメッセージ数を取得します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**「Amazon SQS」**​を検索します。
2. **\[Get approximate number of messages\]**​ 操作を選択し、キャンバスの ​**\[Logger\]**​ コンポーネントの右にドラッグします。
3. Amazon の ​**\[Queue url (キュー URL)\]**​ 項目を次のように設定します。
    
    ![get-message-count](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-get-message-count.png)
4. 次の項目を設定します。
    
    - **Display Name (表示名)**​  
        Logger コンポーネントの名前
    - **Message (メッセージ)**​  
        Mule ログメッセージを指定する文字列または DataWeave 式
    - **Level (レベル)**​  
        ログレベルを設定します。デフォルト値は ​`INFO`​ です。
        
        次の画像は、項目のサンプル値を示しています。
        
        ![ログメッセージ数の設定値の例](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-logger2.png)

## [](#メッセージを受信するフローを作成する)メッセージを受信するフローを作成する

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

1. \[Mule Palette (Mule パレット)\] ビューで​**「SQS」**​を検索し、​**\[Receive messages\]**​ 操作を選択します。
    
    ![select-receive-messages](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-select-receive.png)
2. **\[Receive messages\]**​ 操作をキャンバスにドラッグします。
3. **\[General (一般)\]**​ プロパティウィンドウで、次の項目を設定します。
    
    - **Display Name (表示名)**​  
        コネクタ操作で表示する名前
    - **Connector 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](/mulesoft/current/ja-jp/amazon-sqs-connector/5.8/_images/amazon-sqs-receive-message.png)
4. Mule コンソールにメッセージを表示する ​**Logger**​ コンポーネントを追加します。
5. 次の項目値を使用して ​**Logger**​ を設定します。
    
    - **Display Name (表示名)**​  
        Logger コンポーネントの名前
    - **Message (メッセージ)**​  
        Mule ログメッセージを指定する文字列または DataWeave 式
    - **Level (レベル)**​  
        ログレベルを設定します。デフォルト値は ​`INFO`​ です。

## [](#mule-アプリケーション-xml-コードの例)Mule アプリケーション XML コードの例

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

```xml
<mule xmlns:sqs="http://www.mulesoft.org/schema/mule/sqs" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:file="http://www.mulesoft.org/schema/mule/file"
	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/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.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/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/file
  http://www.mulesoft.org/schema/mule/file/current/mule-file.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" />
	</sqs:config>

	<sqs:config name="Amazon_SQS_Large_Payload_Configuration" doc:name="Amazon SQS Configuration"
	defaultQueueUrl="${sqs.queueUrl}" >
		<sqs:basic-connection accessKey="${sqs.accessKey}" secretKey="$sqs.secretKey}" region="us-east-1" >
			<sqs:large-payload-support bucket="large-sqs-payload-bucket" messageSizeThreshold="256" messageSizeThresholdUnit="KB" />
		</sqs:basic-connection>
	</sqs:config>

	<file:config name="File_Config" doc:name="File Config" >
		<file:connection workingDir="${app.home}" />
	</file:config>

	<flow name="sqs-send-LargeMessageFlow" >
		<http:listener doc:name="Listener"
		config-ref="HTTP_Listener_config"
		path="/largePayload"/>
		<file:read doc:name="Read" config-ref="File_Config" path="largePayload.txt"/>
		<ee:transform doc:name="Transform Message" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
	delaySeconds: 0,
	body: payload,
	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_Large_Payload_Configuration" config-ref="Amazon_SQS_Large_Payload_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_Large_Payload_Configuration"
		queueUrl="${sqs.queueUrl}"/>
		<logger level="INFO" doc:name="Log Count"
		message="Sent Message: `#[payload]`"/>
	</flow>
	<flow name="sqs-receive-large-message-flow" >
		<sqs:receivemessages doc:name="Receive messages"
		config-ref="Amazon_SQS_Large_Payload_Configuration"/>
		<logger level="INFO" doc:name="Log Receipt" />
	</flow>
</mule>
```