Obtener información sobre cómo configurar un redireccionamiento de cola de mensajes fallidos en Amazon SQS - Amazon Simple Queue Service

Obtener información sobre cómo configurar un redireccionamiento de cola de mensajes fallidos en Amazon SQS

Puede usar un redireccionamiento de cola de mensajes fallidos para mover los mensajes no consumidos desde una cola de mensajes fallidos existente. De forma predeterminada, el redireccionamiento de cola de mensajes fallidos mueve los mensajes de una cola de mensajes fallidos a una cola de origen. No obstante, también puede configurar cualquier otra cola estándar como destino de redireccionamiento si las colas son del mismo tipo. Por ejemplo, si la cola de mensajes fallidos es una cola FIFO, la cola de destino de redireccionamiento también debe ser una cola FIFO. Además, puede configurar la velocidad de redireccionamiento para establecer a qué velocidad Amazon SQS mueve los mensajes.

nota

Cuando un mensaje pasa de una cola FIFO a una DLQ FIFO, el ID de desduplicación del mensaje original se reemplazará por el ID del mensaje original. Esto es para asegurarse de que la desduplicación de DLQ no impedirá el almacenamiento de dos mensajes independientes que casualmente comparten un ID de desduplicación.

Las colas de mensajes fallidos redirigen los mensajes en el orden en que se reciben, empezando por el mensaje más antiguo. Sin embargo, la cola de destino ingiere los mensajes redirigidos, así como los mensajes nuevos de otros productores, según el orden en que los recibe. Por ejemplo, si un productor envía mensajes a una cola FIFO de origen cuando de forma simultánea recibe mensajes redirigidos de una cola de mensajes fallidos, los mensajes redirigidos se entrelazarán con los nuevos mensajes del productor.

nota

La tarea de redireccionamiento restablece el periodo de retención. Todos los mensajes redirigidos se consideran mensajes nuevos con un messageID y un enqueueTime nuevos y se asignan a mensajes redirigidos.

Configuración de un redireccionamiento de cola de mensajes fallidos para una cola estándar existente mediante la API de Amazon SQS

Puede configurar un redireccionamiento cola de mensajes fallidos con las acciones de la API StartMessageMoveTask, ListMessageMoveTasks y CancelMessageMoveTask:

Acción de la API Descripción

StartMessageMoveTask

Inicia una tarea asincrónica para mover mensajes de una cola de origen especificada a una cola de destino especificada.

ListMessageMoveTasks

Obtiene las tareas de movimiento de mensajes más recientes (hasta diez) en una cola de origen específica.

CancelMessageMoveTask

Cancela una tarea de movimiento de mensajes especificada. Un movimiento de mensajes solo puede cancelarse cuando el estado actual es EN EJECUCIÓN.

Configuración de un redireccionamiento de cola de mensajes fallidos para una cola estándar mediante la consola de Amazon SQS

  1. Abra la consola de Amazon SQS en https://console.aws.amazon.com/sqs/.

  2. En el panel de navegación, elija Colas.

  3. Elija el nombre de la cola que haya configurado como una cola de mensajes fallidos.

  4. Seleccione Iniciar el redireccionamiento de la DLQ.

  5. En Redireccionar configuración, para Destino del mensaje, realice una de las siguientes acciones:

    • Para redireccionar mensajes a su cola de origen, seleccione Redireccionar a las colas de origen.

    • Para redireccionar mensajes a otra cola, elija Redireccionar a un destino personalizado. A continuación, escriba el nombre de recurso de Amazon (ARN) de una cola de destino existente.

  6. En Configuración de control de velocidad, elija una de las siguientes opciones:

    • Sistema optimizado: redireccionar la cola de mensajes fallidos al número máximo de mensajes por segundo.

    • Velocidad máxima personalizada: redireccionar mensajes de la cola de mensajes fallidos con una velocidad máxima personalizada de mensajes por segundo. La velocidad máxima permitida es de 500 mensajes por segundo.

      • Se recomienda empezar con un valor pequeño para la velocidad máxima personalizada y comprobar que la cola de origen no se satura de mensajes. A partir de ahí, aumente gradualmente el valor de la velocidad máxima personalizada, sin dejar de monitorear el estado de la cola de origen.

  7. Cuando termine de configurar el redireccionamiento de la cola de mensajes fallidos, elija Redireccionar mensajes.

    importante

    Amazon SQS no admite el filtrado y la modificación de mensajes mientras los redirecciona desde la cola de mensajes fallidos.

    Una tarea de redireccionamiento de cola de mensajes fallidos puede ejecutarse un máximo de 36 horas. Amazon SQS admite un máximo de 100 tareas de redireccionamiento activas por cuenta.

  8. Si desea cancelar la tarea de redireccionamiento de mensajes, en la página Detalles de la cola, elija Cancelar redireccionamiento de DLQ. Al cancelar un redireccionamiento de mensajes en curso, los mensajes que ya se hayan movido correctamente a su cola de destino de movimiento permanecerán en ella.

Configuración de los permisos del redireccionamiento de cola de mensajes fallidos

Puede conceder al usuario acceso a acciones específicas de la cola de mensajes fallidos si agrega permisos a la política. Los permisos mínimos necesarios para un redireccionamiento de cola de mensajes fallidos son los siguientes:

Permisos mínimos Métodos de API necesarios
Inicio de un redireccionamiento de mensajes
  • Agregue sqs:StartMessageMoveTask, sqs:ReceiveMessage, sqs:DeleteMessage y sqs:GetQueueAttributes de la cola de mensajes fallidos. Si la cola de mensajes fallidos o la cola de origen están cifradas (conocida como cola SSE), también se necesita kms:Decrypt para cualquier clave de KMS que se haya utilizado para cifrar los mensajes.

  • Agregue sqs:SendMessage de la cola de destino. Si la cola de destino está cifrada, también se requieren kms:GenerateDataKey y kms:Decrypt.

Cancelación de un redireccionamiento de mensajes en curso
  • Agregue sqs:CancelMessageMoveTask, sqs:ReceiveMessage, sqs:DeleteMessage y sqs:GetQueueAttributes de la cola de mensajes fallidos. Si la cola de mensajes fallidos está cifrada (conocida como cola SSE), también se requiere kms:Decrypt.

Visualización del estado de movimiento de mensajes
  • Agregue sqs:ListMessageMoveTasks y sqs:GetQueueAttributes de la cola de mensajes fallidos.

Configuración de los permisos de un par de colas cifradas (una cola de origen con una cola de mensajes fallidos)

Siga estos pasos para configurar los permisos mínimos de un redireccionamiento de cola de mensajes fallidos:

  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Políticas.

  3. Cree una política con los siguientes permisos y asóciela a su usuario o rol de IAM de inicio de sesión:

    • sqs:StartMessageMoveTask

    • sqs:CancelMessageMoveTask

    • sqs:ListMessageMoveTasks

    • sqs:ListDeadLetterSourceQueues

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • El ARN de Resource de la cola de mensajes fallidos (por ejemplo, “arn:aws:sqs:<DLQ_region>:<DLQ_accountId>:<DLQ_name>”).

    • sqs:SendMessage

    • El ARN de Resource de la cola de destino (por ejemplo, “arn:aws:sqs:<DestQueue_region>:<DestQueue_accountId>:<DestQueue_name>”).

    • kms:Decrypt: permite la acción de descifrado.

    • kms:GenerateDataKey

    • Los ARN de Resource de cualquier clave de cifrado de KMS que se haya utilizado para cifrar los mensajes de la cola de origen (por ejemplo, “arn:aws:kms:<region>:<accountId>:key/<keyId_used to encrypt the message body>”).

    • El ARN de recurso de la clave de cifrado de KMS que se utiliza para la cola de destino de redireccionamiento (por ejemplo, “arn:aws:kms:<region>:<accountId>:key/<keyId_utilizado para la cola de destino>").

    Su política de acceso debe ser similar a la siguiente:

    { "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", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:<region>:<accountId>:key/<keyId>" } ] }
Configuración de los permisos mediante un par de colas no cifradas (una cola de origen con una cola de mensajes fallidos)

Siga estos pasos para configurar los permisos mínimos de una cola de mensajes fallidos no cifrada. Los permisos mínimos requeridos son recibir, eliminar y obtener atributos de la cola de mensajes fallidos, y enviar atributos a la cola de origen.

  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Políticas.

  3. Cree una política con los siguientes permisos y asóciela a su usuario o rol de IAM de inicio de sesión:

    • sqs:StartMessageMoveTask

    • sqs:CancelMessageMoveTask

    • sqs:ListMessageMoveTasks

    • sqs:ListDeadLetterSourceQueues

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • El ARN de Resource de la cola de mensajes fallidos (por ejemplo, “arn:aws:sqs:<DLQ_region>:<DLQ_accountId>:<DLQ_name>”).

    • sqs:SendMessage

    • El ARN de Resource de la cola de destino (por ejemplo, “arn:aws:sqs:<DestQueue_region>:<DestQueue_accountId>:<DestQueue_name>”).

    Su política de acceso debe ser similar a la siguiente:

    { "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>" } ] }