Amazon Simple Queue Service (Amazon SQS) メッセージをデッドレターキュー (DLQ) からソースキューにリドライブできません。
解決策
「DLQ リドライブの開始」アイコンがグレー表示される
Amazon SQS キューを DLQ として設定しない場合、Amazon SQS コンソールで [DLQ リドライブの開始] アイコンにアクセスできません。
詳細については、「デッドレターキューのリドライブの設定」を参照してください。
「Failed: CouldNotDetermineMessageSource」エラー
DLQ に次のいずれかのメッセージが表示される場合、ソースキューに DLQリ ドライブを開始しようとすると、このエラーが発生する可能性があります。
- DLQ への SendMessage API 呼び出しで送信される Amazon SQS メッセージ。
- Amazon Simple Notification Service (Amazon SNS) トピックまたは DLQ が設定された AWS Lambda 関数からのメッセージ。
このエラーを解決するには、リドライブを開始するときに [再処理のためにカスタム送信先に移動] を選択します。次に、Amazon SQS キュー ARN を入力して、すべてのメッセージを DLQ から宛先キューに移動します。
「Failed: AWS.SimpleQueueService.NonExistentQueue」エラー
このエラーは、Amazon SQS ソースキューが存在しないか削除されたために DLQ リドライブが失敗した場合に発生します。
「Failed to create redrive task.Error code: AccessDenied - Queue Permissions to Redrive」エラー
このエラーは、AWS Identity and Access Management (IAM) に必要な権限がないために DLQ リドライブが失敗した場合に発生します。DLQ リドライブリクエストを行うには、次の API 権限が必要です。
サーバー側の暗号化 (SSE) キューには、次の AWS Key Management Service (AWS KMS) キーポリシー権限が必要です。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"sqs:ReceiveMessage",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"sqs:StartMessageMoveTask",
"sqs:ListMessageMoveTasks",
"sqs:CancelMessageMoveTask"
],
"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>"
}
]
}
詳細については、「Amazon SQS API 呼び出しの「AccessDenied」または「AccessDeniedException」エラーのトラブルシューティング方法を教えてください。」を参照してください。
**重要:**2023 年 8 月 31 日より前に Amazon SQS コンソールを使用して DLQ リドライブのキューのアクセス許可を設定した場合は、必ずアクセス許可を更新してください。
関連情報
Amazon SQS キューにアクセスするにはどのような権限が必要ですか?
Lambda 関数が有効な Amazon SQS メッセージを再試行してデッドレターキューに入れるのはなぜですか?
Amazon SQS が FIFO デッドレターキューのリドライブのサポートを発表