はじめに
AWS_SQSGetコンポーネントを使用することで、Simple Queue Service(SQS)からメッセージを取得できます。
※今回もAWSコネクションを使用しますが、DynamoDBと連携する回で作成したAWSコネクションがそのまま使用できます。
※また、接続するSQSのキューはFIFOではありません。
AWS_SQSGetコンポーネントと今回の確認に使用するフローについて
SQSからメッセージを取得するコンポーネントと、確認に使用するフローを解説します。
AWS_SQSGetコンポーネントの設定
このコンポーネントのプロパティとして設定した内容は以下の通りで、すべて「基本」タブの設定です。「メッセージ属性」タブなどの載っていない項目はデフォルトのままです。
- コネクションを使用:はい
- コネクション名:(使用するAWSコネクションを入力します。下図ではDynamoDBと連携する回で作成したものを使用しています。)
- キューURL:(メッセージを出力したいキューのキューURLを入力します。ブラウザでSQSの各キューを開いた際に表示される詳細欄の項目「URL」から確認するか、コネクション選択後にAWS_SQSPutコンポーネントをダブルクリックして「Amazon SQS Queue Browser」で選択してください。)
- 未読のメッセージのみ:いいえ(「はい」にするとReceive Countが1のメッセージしか出力されません。)
- コミット時の処理:何もしない(「メッセージを削除」にすると、コミット時に出力したメッセージが削除されます。)
- デコードする:いいえ(「はい」にすると、取得したメッセージをBase64デコードします。AWS_SQSPutでメッセージ本文をBase64エンコードしている際はこの設定でデコードできます。)
確認に使用するフローについて
AWSのSQSからメッセージを取得できることを確認するために、下図のフローを作成しました。
AWS_SQSGetコンポーネントで指定したキューからメッセージを取得します。

フローの解説
AWS_SQSGet
プロパティで設定した内容をもとに、指定したSQSのキューからメッセージを取得します。
マッパー
取得した内容からMessageIDやタイムスタンプを省いて、メッセージのみに絞ります。
実行結果
フローの最後がEndResponseなので、終了後にメッセージのみに絞ったストリームを返します。
下図ではAWS_SQSPutの回でSQSに出力した「AWS_SQS_TestMessage」を取得できたことが確認できます。
※この段階では、SQSに「AWS_SQS_TestMessage」以外のメッセージは存在していません。
