配置死信队列重新驱动程序(控制台) - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置死信队列重新驱动程序(控制台)

您可以配置死信队列重新驱动将标准未使用的消息从现有死信队列中移回其源队列。有关死信队列重新驱动程序的更多信息,请参阅将消息移出死信队列.

为现有标准队列配置死信队列重新驱动程序(控制台)

  1. 在打开 Amazon SQS 控制台https://console.aws.amazon.com/sqs/.

  2. 在导航窗格中,选择 Queues (队列)。

  3. 选择已配置为的队列的名称死信队列.

  4. 选择启动 DLQ 重新驱动.

  5. UNDIVE重新驱动器配置,对于消息目的地对于,执行以下操作之一:

    • 要将消息重新驱动到其源队列,请选择重新开车到源队列.

    • 要将消息重新驱动到另一个队列,请选择重新开车到自定义目的地. 然后,输入现有目标队列的 Amazon 资源名称 (ARN)。

  6. UNDIVEVelocity 控制设置对于,选择以下选项之一:

    • 优化系统-以每秒最大消息数重新驱动死信队列消息。

    • 自定义最大速度-使用自定义的每秒最大消息速率重新驱动死信队列消息。允许的最大速率为每秒 500 条消息。

  7. 配置死信队列重新驱动程序后,选择重新驱动消息.

    重要

    Amazon SQS 控制台中仅支持死信队列重新驱动 Amazon SQS 序。

    Amazon SQS 不支持在从死信队列中重新驱动消息时过滤和修改消息。

    死信队列重新驱动任务最多可以运行 36 小时。Amazon SQS 支持每个账户最多 100 个活动的重新驱动任务。

    重新驱动程序任务将重置保留期。新messageIDenqueueTime被分配给重新驱动的消息。

  8. 如果要取消消息重新驱动程序任务,请在详细信息您的队列页面,选择取消 DLQ 重新驱动. 取消正在进行的消息重新驱动时,已成功移动到移动目标队列的任何邮件都将保留在目标队列中。

配置死信队列重新驱动程序的队列权限

您可以通过向策略添加权限来授予用户对特定死信队列操作的访问权限。死信队列重新驱动程序所需的最低权限如下:

最小权限 必需的 API 方法
启动消息重新驱动
  • 添加sqs:ReceiveMessagesqs:DeleteMessagesqs:GetQueueAttributes死信队列。如果死信队列已加密(也称为SSE(2.)kms:Decrypt此外,也是必需的。

  • 添加sqs:SendMessage的目标队列。如果目标队列已加密,kms:GenerateDataKeykms:Decrypt也是必需的。

重新驱动程序取消进行中的消息
  • 添加sqs:ReceiveMessagesqs:DeleteMessagesqs:GetQueueAttributes死信队列。如果死信队列已加密(也称为SSE(2.)kms:Decrypt此外,也是必需的。

显示消息移动状态
  • 添加sqs:GetQueueAttributes死信队列。

配置加密队列对(带死信队列的源队列)的权限

您的源队列及其相应的死信队列需要共享相同的KMS 密钥. 使用以下步骤来配置死信队列重新驱动的最低权限:

  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies (策略)

  3. 创建政策具有以下权限并将其附加到您的登录 IAM用户要么角色

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • 这些区域有:Resource死信队列的 arn(例如 “arn: aw: sqs: sqs:<DLQ_region><DLQ_accountId><DLQ_name>“)

    • sqs:SendMessage

    • 这些区域有:Resource目标队列的 arn(例如 “arn: aw: sqs: sqs:<DestQueue_region><DestQueue_accountId><DestQueue_name>“)

    • kms:Decrypt允许解密操作

    • kms:GenerateDataKey

    • 这些区域有:ResourceKMS 加密密钥的 arn(例如 “arn: aw: kms: kms:<region><accountId>:: key/ <keyId_used to encrypt the message body>“)

    访问策略应类似于以下内容:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "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. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies (策略)

  3. 创建政策具有以下权限并将其附加到您的登录 IAM用户要么角色

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • 这些区域有:Resource死信队列的 arn(例如 “arn: aw: sqs: sqs:<DLQ_region><DLQ_accountId><DLQ_name>“)

    • sqs:SendMessage

    • 这些区域有:Resource目标队列的 arn(例如 “arn: aw: sqs: sqs:<DestQueue_region><DestQueue_accountId><DestQueue_name>“)

    访问策略应类似于以下内容:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "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>" } ] }