デッドレターキューを設定します。 - Amazon Simple Queue Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

デッドレターキューを設定します。

デッドレターキューのリドライブは既存のデッドレターキューからスタンダードの未使用メッセージをソースキューに戻すことが設定できます。デッドレターキューリドライブの詳細については、デッドレターキューからメッセージを移動するにはを参照してください。

既存のスタンダードキュー (API) にデッドレターキューリドライブを設定

次の API アクションを使用して、デッドレターキューリドライブを設定できます。

API アクション 説明

StartMessageMoveTask

指定されたソースキューから指定された送信先キューにメッセージを移動する非同期タスクを開始します。

ListMessageMoveTasks

特定のソースキューにある最新のメッセージ移動タスク (最大 10 個) を取得します。

CancelMessageMoveTask

指定されたメッセージ移動タスクをキャンセルします。メッセージの移動は、現在のステータスが RUNNING の場合にのみキャンセルできます。

既存のスタンダードキュー (コンソール) にデッドレターキューリドライブを設定

  1. Amazon SQSコンソールを開きます https://console.aws.amazon.com/sqs/

  2. ナビゲーションペインで [Queues(キュー) ] を選択します。

  3. デッドレターキューとして設定されたキューの名前を選択します。

  4. DLQリドライブを開始するを選択する。

  5. リドライブの設定に対してメッセージの送信先で、次のいずれかを実行します。

    • メッセージをソースキューに戻すには、ソースキューにリドライブを選択します。

    • メッセージを別のキューにリドライブするには、カスタム送信先にリドライブを選択します。次に、既存の宛先キューのAmazonリソースネーム(ARNを入力します。

      注記

      カスタムの送信先キューは、デッドレターキューのタイプと一致する必要があります。例えば、デッドレターキューが FIFO キューの場合、リドライブの送信先キューも FIFO キューでなければなりません。

  6. Velocityコントロール設定で、次のいずれかを選択します。

    • システム最適化-デッドレターキューメッセージを1秒につき最大メッセージ数でリドライブします。

    • カスタム最大 velocity-1秒につきカスタム最大メッセージ数でデッドレターキューメッセージをリドライブします。許可される最大レートは1秒に500 メッセージです。

      • カスタム最大速度を小さい値から始めて、ソースキューがメッセージでいっぱいにならないことを確認することをお勧めします。そこから、ソースキューの状態を引き続き監視しながら、カスタム最大速度の値を徐々に上げていきます。

  7. デッドレターキューリドライブの設定が完了したら、メッセージをリドライブするを選択します。

    重要

    Amazon SQSは、デッドレターキューからメッセージをリドライブするときにメッセージのフィルタリングと変更をサポートしていません。

    デッドレターキューのリドライブタスクは、最大36時間実行できます。Amazon SQS は、アカウントごとに最大 100 通のアクティブなリドライブタスクがサポートします。

    リドライブタスクによって、保持期間がリセットされます。リドライブされたメッセージには新規のmessageIDそしてenqueueTimeが割り当てられます。

  8. メッセージリドライブタスクをキャンセルする場合は、の詳細キューのページで、DLQリドライブをキャンセルします。進行中のメッセージのリドライブをキャンセルすると、移動先キューにすでに正常に移動されたメッセージは、移動先キューに残ります。

デッドレターキューリドライブのキューアクセス許可を設定

ポリシーにアクセス許可を追加することで、ユーザーに特定のデッドレターキューアクションへのアクセスを許可できます。デッドレターキューリドライブに最低限必要なアクセス許可は次のとおりです。

最小限必要なアクセス権限 必要な API メソッド
メッセージのリドライブを開始するには
  • デッドレターキューの sqs:StartMessageMoveTasksqs:ReceiveMessagesqs:DeleteMessagesqs:GetQueueAttributes を追加します。デッドレターキューまたは元のソースキュー (SSE キューとも呼ばれます) のいずれかが暗号化されている場合、kms:Decrypt メッセージの暗号化に使用されたすべての KMS キーも必要になります。

  • 送信先キュー sqs:SendMessage を追加します。送信先キューが暗号化されている場合、kms:GenerateDataKeykms:Decrypt も必要になります。

進行中のメッセージのリドライブをキャンセルするには
  • デッドレターキューの sqs:CancelMessageMoveTasksqs:ReceiveMessagesqs:DeleteMessagesqs:GetQueueAttributes を追加します。デッドレターキューが暗号化されている場合 (SSE キューとも呼ばれる)、kms:Decrypt も必要になります。

メッセージの移動状況を表示するには
  • デッドレターキューの sqs:ListMessageMoveTaskssqs:GetQueueAttributes を追加します。

暗号化されたキューペア (デッドレターキューのあるソースキュー) のアクセス許可を設定するには

次の手順を使用して、デッドレターキューリドライブの最小限のアクセス許可を設定します。

  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[ポリシー] を選択します。

  3. 次のアクセス許可を持つポリシーを作成して、ログイン IAM ユーザーまたはロールにアタッチします。

    • sqs:StartMessageMoveTask

    • sqs:CancelMessageMoveTask

    • sqs:ListMessageMoveTasks

    • sqs:ListDeadLetterSourceQueues

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • デッドレターキューの Resource ARN (例えば、"arn:aws:sqs:<DLQ_region>:<DLQ_accountId>:<DLQ_name>")。

    • sqs:SendMessage

    • 送信先キューの Resource ARN (例えば、「arn:aws:sqs:<DestQueue_region>:<DestQueue_accountId >:<DestQueue_name>」)。

    • kms:Decrypt — 復号アクションを許可します。

    • kms:GenerateDataKey

    • 元のソースキュー内のメッセージの暗号化に使用された任意の KMS 暗号化キーの Resource ARN (例えば、"arn:aws:kms:<region>:<accountId>:key/<keyId_used to encrypt the message body>")。

    • リドライブ送信先キューに使用される KMS 暗号化キーのリソース ARN (例えば、"arn:aws:kms:<region>:<accountId>:key/<keyId_used for the destination queue>")。

    アクセスポリシーは以下のようになります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:StartMessageMoveTask", "sqs:CancelMessageMoveTask", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:GetQueueAttributes" ], "Resource": "arn:aws:sqs:<DLQ_region>:<DLQ_accountId>:<DLQ_name>" }, { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:<DestQueue_region>:<DestQueue_accountId>:<DestQueue_name>" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:<region>:<accountId>:key/<keyId>" } ] }
暗号化されていないキューペア (デッドレターキューのあるソースキュー) を使用してアクセス許可を設定するには

次の手順を使用して、暗号化されていない標準的なデッドレターキューの最小限のアクセス許可を設定します。最低限必要なアクセス許可は、デッドレターキューからの属性の受信、削除、取得、およびソースキューへの属性の送信です。

  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[ポリシー] を選択します。

  3. 次のアクセス許可を持つポリシーを作成して、ログイン IAM ユーザーまたはロールにアタッチします。

    • sqs:StartMessageMoveTask

    • sqs:CancelMessageMoveTask

    • sqs:ListMessageMoveTasks

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • デッドレターキューの Resource ARN (例えば、"arn:aws:sqs:<DLQ_region>:<DLQ_accountId>:<DLQ_name>")。

    • sqs:SendMessage

    • 送信先キューの Resource ARN (例えば、「arn:aws:sqs:<DestQueue_region><DestQueue_accountId ><DestQueue_name>」)。

    アクセスポリシーは以下のようになります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:StartMessageMoveTask", "sqs:CancelMessageMoveTask", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:GetQueueAttributes" ], "Resource": "arn:aws:sqs:<DLQ_region>:<DLQ_accountId>:<DLQ_name>" }, { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:<DestQueue_region>:<DestQueue_accountId>:<DestQueue_name>" } ] }