Amazon SQS
Amazon SQSは、Amazon Web Servicesが提供するウェブサービスであり、マイクロサービス、分散システム、サーバーレスアプリケーション向けのフルマネージドメッセージキューを提供します。 Amazon SQSコネクターを使用すると、WorkatoでAmazon SQSの機能を使用できます。
APIバージョン
Amazon SQSコネクターはAmazon SQS REST APIを使用します。
WorkatoでAmazon SQSに接続する方法
レガシーアクセスキー認証
アクセスキー認証はレガシー認証形式です。 IAMロール認証の使用を強くお勧めします。
Workatoは、Amazon SQSに対して次の認証方法をサポートしています。
IAMロール認証
このWorkatoコネクション用に専用の統合ロールをプロビジョニングすることをお勧めします。 専用の統合ロールは、制御されたアクセスや、Workatoなどのサードパーティアプリケーションによって許可されるアクションを含む、権限の境界を維持するのに役立ちます。
WorkatoでのIAMロール認証の詳細については、次のAmazonドキュメントを参照してください。
- WorkatoドキュメントのAWS ServicesにIAMロールベース認証を使用する。
- AmazonドキュメントのAWSアカウントでIAMユーザーを作成する。
権限
Amazon SQSでIAMユーザーとIAMロールを作成すると、WorkatoはAmazon SQSユーザーアカウントで操作を実行します。 Amazon SQSコネクターのすべてのアクションを使用するには、IAMユーザーにSQSへのFullAccess権限が必要です。
ARNポリシーの例: arn:aws:iam::aws:policy/AmazonSQSFullAccess。
IAMロールARN認証
この認証方法では、IAMロールARNを指定する必要があります。
必要なIAMロールのAmazonリソースネーム(ARN)を取得するには、AWSサービスでIAMロールベースの認証を使用するの手順を完了してください。
WorkatoでIAMロールARNの設定を完了する
IAM認証の詳細については、AWS ServicesにIAMロールベース認証を使用するを参照してください。
WorkatoでAmazon SQSコネクションの設定を完了するには、次の手順を実行します。
作成 > コネクションをクリックするか、Cを2回押します。
New connectionページで、コネクションとしてAmazon SQSを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
ドロップダウンメニューからConnection typeを選択します。
Authorization typeドロップダウンメニューを使用して、IAM roleを選択します。
IAM role ARNを入力します。
使用する予定のSQSアカウントのRegionを入力します。
接続をクリックします。
アクセスキー情報を取得する
非推奨
アクセスキー認証は非推奨です。 WorkatoではIAMロール認証の使用を推奨しています。
この認証方法にはAccess keyが必要です。 必要なAccess key情報を取得するには、Amazonドキュメントを参照してください。
Workatoでアクセスキーの設定を完了する
WorkatoでAmazon SQSアクセスキーの設定を完了するには、次の手順を実行します。
作成 > コネクションをクリックするか、Cを2回押します。
New connectionページで、コネクションとしてAmazon SQSを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
Connection typeドロップダウンメニューを使用して、コネクションタイプを選択します。
Authorization typeドロップダウンメニューを使用して、Access keyを選択します。
Access key IDを入力します。
Secret access keyを入力します。
使用する予定のSQSアカウントのRegionを入力します。
接続をクリックします。
用語
次の用語は、Amazon SQSオブジェクトを理解して操作するうえで重要です。
キュー
Workato SQSコネクターは標準キューのみをサポートしています。
Amazon SQSには2種類のキューがあります。
- 標準キュー: これはデフォルトのキュータイプであり、少なくとも1回のメッセージ配信をサポートします。 標準キューではベストエフォート型の順序付けが提供され、メッセージが送信された順序と同じ順序で配信されるようにします。
- FIFOキュー - FIFO(First-In-First-Out)キューは、操作やイベントの順序が重要な場合、またはメッセージングで重複を許容できない場合に、アプリケーション間のメッセージングを強化します。
メッセージ
Amazon SQSでは、メッセージ属性を使用して、タイムスタンプ、地理空間データ、署名、識別子などの構造化メタデータをメッセージに含めることができます。 各メッセージには最大10個の属性を設定できます。 メッセージ属性は任意であり、メッセージ本文とは別のものですが、メッセージ本文と一緒に送信されます。 Workatoはメッセージ本文とメッセージ属性の両方をサポートしています。
コンシューマーがキューからメッセージを受信して処理しても、そのメッセージはキュー内に残ります。 Amazon SQSはメッセージを自動的に削除しません。 Amazon SQSは分散システムであるため、コンシューマーがメッセージを受信する保証はありません。 Workato SQSコネクターでは、トリガーでメッセージを取得するときにメッセージを自動的に削除できます。 または、Delete messagesアクションを使用して、レシピでメッセージを処理した後に削除できます。
ショートポーリングとロングポーリング
SQSの分散性により、SQSへの1回のリクエストでキュー内のすべてのメッセージを取得できない場合があります。 たとえば、キュー内に数百件のメッセージが存在する可能性がある場合でも、10件のメッセージを取得するリクエストで9件のメッセージしか取得できないことがあります。 これは、SQSがメッセージを保持しているサーバーのサブセットをサンプリングして返すためです。
Workatoはこれを軽減するために、5秒の待機タイムアウトでロングポーリングを使用します。 Workatoがトリガーまたはアクションでメッセージを取得しようとする場合、Workatoはサンプリングされたサーバーにメッセージが到着するまで最大5秒待機します。 アクションでは、入力Wait time (seconds)を使用してこのタイムアウトを設定します。
可視性タイムアウト
メッセージは受信された直後もキュー内に残ります。 他のユーザーがメッセージを再度処理しないように、Amazon SQSは可視性タイムアウトを設定し、他のユーザーがメッセージを受信して処理できないようにします。
Workatoコネクターでは、最大12時間の上限で可視性タイムアウトを設定できます。 Visibility Timeout入力フィールドを空白のままにすると、デフォルトのAmazon SQSタイムアウトは30秒になります。 Visibility Timeout値を指定する場合は、0~12時間の範囲にする必要があります。 この間、メッセージは他のユーザーに表示されません。
この動作により、タイムアウト値の柔軟性を維持しながら、重複メッセージ処理の可能性を最小限に抑えます。
デッドレターキュー
SQSキュー内で削除されたメッセージのみが処理済みと見なされます。 メッセージが一定時間キュー内に残された場合、または取得された回数が多すぎる場合、デバッグのためにデッドレターキューに移動されます。
Workatoは、デッドレターキューに保存されたメッセージの保管をサポートしていません。 Workatoは、メッセージがデッドレターキューに入ったときに通知するアラームを設定することをお勧めします。 詳細については、Amazon SQSドキュメントを参照してください。
トラブルシューティング
可視性タイムアウトの問題を解決するには、次のトラブルシューティング情報を使用してください。
ジョブ間の重複メッセージ
異なるジョブ間で重複メッセージが表示される場合があります。 これは、ジョブの処理が遅すぎて、Workatoによって取得されたメッセージが可視性タイムアウトを超過し、再度取得可能になる場合に発生します。
これを防ぐには、可視性タイムアウトを長くするか、メッセージが取得された時点で削除します。
Last updated: