Solución de problemas relacionados con la cola de mensajes fallidos y la redireccionamiento de DLQ - Amazon Simple Queue Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas relacionados con la cola de mensajes fallidos y la redireccionamiento de DLQ

En los siguientes temas se describen las causas más comunes de los problemas de DLQ y redireccionamiento de DLQ y cómo solucionarlos. Para obtener más información, consulte How do I troubleshoot Amazon SQS DLQ redrive issues? en la Guía del Centro de conocimiento de AWS .

Problemas de DLQ

Obtenga información sobre los problemas más comunes de DLQ y cómo resolverlos.

La visualización de mensajes mediante la consola puede hacer que los mensajes se muevan a una cola de mensajes fallidos

Amazon SQS cuenta la visualización de un mensaje en la consola; para la política de redireccionamiento de la cola correspondiente. Por tanto, si ve un mensaje en la consola el número de veces especificado en la política de redireccionamiento de la cola correspondiente, el mensaje se enviará a la cola de mensajes fallidos de dicha cola.

Para configurar este comportamiento, puede elegir una de las siguientes opciones:

  • Aumentar la configuración Maximum Receives de la política de redireccionamiento de la cola correspondiente.

  • Evitar visualizar los mensajes de la cola correspondiente en la consola.

Los valores de NumberOfMessagesSent y NumberOfMessagesReceived para una cola de mensajes fallidos no coinciden

Si envía manualmente un mensaje a una cola de mensajes fallidos, la métrica NumberOfMessagesSent lo captura. Sin embargo, si se envía un mensaje a una cola de mensajes fallidos como consecuencia de un intento fallido de procesamiento, esta métrica no lo captura. Por tanto, es posible que los valores de NumberOfMessagesSent y NumberOfMessagesReceived sean diferentes.

Creación y configuración de un redireccionamiento de cola de mensajes fallidos

El redireccionamiento de cola de mensajes fallidos requiere que establezca los permisos adecuados para que Amazon SQS reciba mensajes de la cola de mensajes fallidos y envíe mensajes a la cola de destino. Si no tiene los permisos correctos, la tarea de redireccionamiento de cola de mensajes fallidos puede fallar. Puede ver el estado de su tarea de redireccionamiento de mensajes para solucionar los problemas e intentarlo de nuevo.

Administración de errores de mensajes en cola estándar y FIFO

Las colas estándar siguen procesando mensajes hasta que termina el período de retención. Este procesamiento continuo minimiza las posibilidades de que la cola quede bloqueada por mensajes no consumidos. El hecho de tener un gran número de mensajes que el consumidor no elimina de forma reiterada podría aumentar los costos y suponer una carga adicional para el hardware. Para mantener bajos los costos, mueva los mensajes fallidos a la cola de mensajes fallidos.

Las colas estándar también permiten un número elevado de mensajes en tránsito. Si la mayoría de los mensajes no se pueden consumir y no se envían a una cola de mensajes fallidos, la tasa de procesamiento de mensajes se puede ralentizar. Para mantener la eficacia de la cola, asegúrese de que su aplicación se ocupa correctamente del procesamiento de mensajes.

Las colas FIFO proporcionan un procesamiento único al consumir mensajes en secuencia de un grupo de mensajes. Aunque el consumidor puede seguir recuperando mensajes ordenados de otro grupo de mensajes, el primer grupo de mensajes sigue sin estar disponible hasta que el mensaje que bloquea la cola se procese correctamente o se traslade a una cola de mensajes fallidos.

Además, las colas FIFO permiten que haya menos mensajes en tránsito. Para evitar que su cola FIFO se bloquee por un mensaje, asegúrese de que su aplicación se encarga correctamente del procesamiento de mensajes.

Para obtener más información, consulte Cuotas de mensajes de Amazon SQS y Prácticas recomendadas para Amazon SQS.

Problemas de redireccionamiento de DLQ

Obtenga información sobre los problemas más comunes de redireccionamiento de DLQ y cómo resolverlos.

AccessDenied problema de permisos

El error AccessDenied se produce cuando el redireccionamiento de DLQ falla porque la entidad de AWS Identity and Access Management (IAM) no tiene los permisos necesarios.

Ejemplos de mensajes de error:

Failed to create redrive task. Error code: AccessDenied - Queue Permissions to Redrive.

Se requieren los siguientes permisos de API para realizar solicitudes de redireccionamiento de DLQ:

Inicio de un redireccionamiento de mensajes:

  • Permisos de la cola de mensajes fallidos:

    • sqs:StartMessageMoveTask

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • kms:Decrypt: cuando la cola de mensajes fallidos o la cola de origen original están cifradas.

  • Permisos de cola de destino:

    • sqs:SendMessage

    • kms:GenerateDataKey: cuando la cola de destino está cifrada.

    • kms:Decrypt: cuando la cola de destino está cifrada.

Cancelación de un redireccionamiento de mensajes en curso:

  • Permisos de la cola de mensajes fallidos:

    • sqs:CancelMessageMoveTask

    • sqs:ReceiveMessage

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • kms:Decrypt: cuando la cola de mensajes fallidos o la cola de origen original están cifradas.

Visualización del estado de movimiento de mensajes:

  • Permisos de la cola de mensajes fallidos:

    • sqs:ListMessageMoveTasks

    • sqs:GetQueueAttributes

Error NonExistentQueue

El error NonExistentQueue se produce cuando la cola de origen de Amazon SQS no existe o se ha eliminado. Compruebe y redireccione a una cola de Amazon SQS que esté presente.

Ejemplos de mensajes de error:

Failed: AWS.SimpleQueueService.NonExistentQueue

Error CouldNotDetermineMessageSource

El error CouldNotDetermineMessageSource se produce al intentar iniciar un redireccionamiento de DLQ en las siguientes situaciones:

  • Un mensaje de Amazon SQS enviado directamente al DLQ con la API SendMessage.

  • Un mensaje del tema AWS Lambda o función del Amazon Simple Notification Service (Amazon SNS) con el DLQ configurado.

Para resolver este error, seleccione Redireccionar a un destino personalizado al iniciar el redireccionamiento. A continuación, introduzca el ARN de la cola de Amazon SQS para mover todos los mensajes del DLQ a la cola de destino.

Ejemplos de mensajes de error:

Failed: CouldNotDetermineMessageSource