翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon でデッドレターキューのリドライブを設定する方法について説明します。 SQS
デッドレターキューリドライブを使用して、未使用のメッセージを既存のデッドレターキューから移動できます。デフォルトでは、デッドレターキューのリドライブは、デッドレターキューからソースキューにメッセージを移動します。ただし、どちらのキューも同じタイプであれば、他のキューをリドライブの宛先として設定することもできます。例えば、デッドレターキューがFIFOキューの場合、リドライブ送信先キューもFIFOキューである必要があります。さらに、Amazon がメッセージSQSを移動する速度を設定するようにリドライブ速度を設定できます。
注記
メッセージがFIFOキューから FIFO に移動するとDLQ、元のメッセージの重複排除 ID は元のメッセージの ID に置き換えられます。これは、重複排除によって、重複DLQ排除 ID を共有する 2 つの独立したメッセージの保存が妨げられないようにするためです。
デッドレターキューは、最も古いメッセージから順にメッセージをリドライブします。ただし、宛先キューは、リドライブされたメッセージと他のプロデューサーからの新しいメッセージを、受信した順序に従って取り込みます。例えば、プロデューサーがデッドレターFIFOキューからリドライブされたメッセージを同時に受信するときにソースキューにメッセージを送信している場合、リドライブされたメッセージはプロデューサーからの新しいメッセージと交差します。
注記
リドライブタスクによって、保持期間がリセットされます。すべてのリドライブされたメッセージは、新しい を持つ新しいメッセージと見なmessageID
されenqueueTime
、リドライブされたメッセージに割り当てられます。
トピック
Amazon を使用した既存の標準キューのデッドレターキューリドライブの設定 SQS API
デッドレターキューのリドライブはSendMessageBatch
、、ReceiveMessage
、および DeleteMessageBatch
APIアクションを使用して設定できます。
API アクション | 説明 |
---|---|
指定されたソースキューから指定された送信先キューにメッセージを移動する非同期タスクを開始します。 |
|
特定のソースキューにある最新のメッセージ移動タスク (最大 10 個) を取得します。 |
|
指定されたメッセージ移動タスクをキャンセルします。メッセージの移動は、現在のステータスが の場合にのみキャンセルできますRUNNING。 |
Amazon SQSコンソールを使用して既存の標準キューのデッドレターキューリドライブを設定する
で Amazon SQSコンソールを開きますhttps://console.aws.amazon.com/sqs/
。 -
ナビゲーションペインで [Queues(キュー) ] を選択します。
-
デッドレターキューとして設定されたキューの名前を選択します。
-
DLQ リドライブの開始 を選択します。
-
リドライブの設定に対してメッセージの送信先で、次のいずれかを実行します。
-
メッセージをソースキューに戻すには、ソースキューにリドライブを選択します。
-
メッセージを別のキューにリドライブするには、カスタム送信先にリドライブを選択します。次に、既存の送信先キューの Amazon リソースネーム (ARN) を入力します。
-
-
Velocityコントロール設定で、次のいずれかを選択します。
-
システム最適化-デッドレターキューメッセージを1秒につき最大メッセージ数でリドライブします。
-
カスタム最大 velocity-1秒につきカスタム最大メッセージ数でデッドレターキューメッセージをリドライブします。許可される最大レートは1秒に500 メッセージです。
-
カスタム最大速度を小さい値から始めて、ソースキューがメッセージでいっぱいにならないことを確認することをお勧めします。そこから、ソースキューの状態を引き続き監視しながら、カスタム最大速度の値を徐々に上げていきます。
-
-
-
デッドレターキューリドライブの設定が完了したら、メッセージをリドライブするを選択します。
重要
Amazon SQSは、デッドレターキューからメッセージを再配信する際のメッセージのフィルタリングと変更をサポートしていません。
デッドレターキューのリドライブタスクは、最大36時間実行できます。Amazon は、アカウントあたり最大 100 個のアクティブなリドライブタスクSQSをサポートします。
-
メッセージリドライブタスクをキャンセルする場合は、キューの詳細ページで、DLQリドライブをキャンセルを選択します。進行中のメッセージのリドライブをキャンセルすると、移動先キューにすでに正常に移動されたメッセージは、移動先キューに残ります。
デッドレターキューリドライブのキューアクセス許可を設定
ポリシーにアクセス許可を追加することで、ユーザーに特定のデッドレターキューアクションへのアクセスを許可できます。デッドレターキューリドライブに最低限必要なアクセス許可は次のとおりです。
最小限必要なアクセス権限 | 必要なAPIメソッド |
---|---|
メッセージのリドライブを開始するには |
|
進行中のメッセージのリドライブをキャンセルするには |
|
メッセージの移動状況を表示するには |
|
暗号化されたキューペア (デッドレターキューのあるソースキュー) のアクセス許可を設定するには
次の手順を使用して、デッドレターキューリドライブの最小限のアクセス許可を設定します。
-
にサインイン AWS Management Console し、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/
。 -
ナビゲーションペインで、ポリシー を選択します。
-
次のアクセス許可を持つポリシーを作成し、ログイン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(s) (例: "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", "sqs:ListDeadLetterSourceQueues" ], "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" ], "Resource": "arn:aws:kms:<region>:<accountId>:key/<keyId_used to encrypt the message body>" }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:<region>:<accountId>:key/<keyId_used for the destination queue>" } ] }
-
暗号化されていないキューペア (デッドレターキューのあるソースキュー) を使用してアクセス許可を設定するには
次の手順を使用して、暗号化されていない標準的なデッドレターキューの最小限のアクセス許可を設定します。最低限必要なアクセス許可は、デッドレターキューからの属性の受信、削除、取得、およびソースキューへの属性の送信です。
-
にサインイン AWS Management Console し、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/
。 -
ナビゲーションペインで、ポリシー を選択します。
-
次のアクセス許可を持つポリシーを作成し、ログイン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>
").
アクセスポリシーは以下のようになります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:StartMessageMoveTask", "sqs:CancelMessageMoveTask", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues" ], "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>" } ] }
-