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.
Colas de SNS cartas muertas de Amazon
Una cola de cartas sin salida es una cola de Amazon a la SQS que puede dirigirse una SNS suscripción de Amazon para los mensajes que no se pueden entregar correctamente a los suscriptores. Los mensajes que no se pueden entregar debido a errores del cliente o errores del servidor se mantienen en la cola de mensajes fallidos para su posterior análisis o reprocesamiento. Para obtener más información, consulte Configuración de una cola de SNS cartas muertas de Amazon para una suscripción y Amazon vuelve a intentarlo con la entrega de SNS mensajes.
nota
La SNS suscripción de Amazon y la SQS cola de Amazon deben estar en la misma AWS cuenta y región.
-
Para un FIFOtema, puedes usar una cola de Amazon como SQS cola de letra muerta para la suscripción de Amazon. SNS FIFOlas suscripciones por temas usan FIFO colas y las suscripciones por temas estándar usan colas estándar.
Para utilizar una cola de Amazon cifrada como SQS cola de letra muerta, debes utilizar una política personalizada KMS con una clave que conceda al SNS servicio de Amazon el acceso principal a las acciones. AWS KMS API Para obtener más información, consulte Protección de SNS los datos de Amazon con cifrado del lado del servidor esta guía y Protección de SQS datos de Amazon mediante el cifrado del lado del servidor (SSE) y la Guía para AWS KMS desarrolladores de Amazon Simple Queue Service.
Temas
- ¿Por qué no se pueden entregar los mensajes?
- ¿Cómo funcionan las colas de mensajes fallidos?
- ¿Cómo se transfieren los mensajes a una cola de mensajes fallidos?
- ¿Cómo puedo sacar los mensajes de una cola de mensajes fallidos?
- ¿Cómo puedo monitorizar y registrar las colas de mensajes fallidos?
- Configuración de una cola de SNS cartas muertas de Amazon para una suscripción
¿Por qué no se pueden entregar los mensajes?
En general, la entrega de mensajes falla cuando Amazon no SNS puede acceder a un punto de conexión suscrito debido a un error del lado del cliente o del lado del servidor. Cuando Amazon SNS recibe un error del lado del cliente o sigue recibiendo un error del lado del servidor para un mensaje que supera el número de reintentos especificado en la política de reintentos correspondiente, Amazon SNS descarta el mensaje, a menos que se adjunte una cola de letra muerta a la suscripción. Las entregas fallidas no cambian el estado de las suscripciones. Para obtener más información, consulte Amazon vuelve a intentarlo con la entrega de SNS mensajes.
Errores del cliente
Los errores del lado del cliente pueden producirse cuando Amazon SNS tiene metadatos de suscripción obsoletos. Estos errores suelen producirse cuando un propietario elimina el punto de conexión (por ejemplo, una función de Lambda suscrita a un tema de SNS Amazon) o cuando un propietario cambia la política adjunta al punto de conexión suscrito de forma que impide que SNS Amazon entregue mensajes al punto de conexión. Amazon SNS no vuelve a intentar la entrega de los mensajes que fallan como resultado de un error del cliente.
Errores del servidor
Los errores del servidor pueden producirse cuando el sistema responsable del punto de conexión suscrito deja de estar disponible o devuelve una excepción que indica que no puede procesar una solicitud válida de Amazon. SNS Cuando se producen errores en el servidor, Amazon SNS vuelve a intentar las entregas fallidas mediante una función de retroceso lineal o exponencial. En el caso de los errores del servidor causados por puntos de enlace AWS gestionados respaldados por Amazon oSQS, AWS Lambda Amazon SNS vuelve a intentar la entrega hasta 100 015 veces, en un plazo de 23 días.
Los puntos de enlace gestionados por el cliente (comoHTTP, SMTPSMS, o mobile push) también pueden provocar errores en el servidor. Amazon también SNS vuelve a intentar la entrega en estos tipos de puntos de conexión. Si bien HTTP los puntos de enlace admiten políticas de reintentos definidas por el cliente, Amazon SNS establece una política de reintentos de entrega interna de 50 veces en 6 horas SMTPSMS, para puntos de enlace push móviles y móviles.
¿Cómo funcionan las colas de mensajes fallidos?
A una SNS suscripción de Amazon (en lugar de a un tema) se adjunta una cola de cartas sin salida, ya que los envíos de mensajes se realizan a nivel de suscripción. De este modo, puede identificar más fácilmente el punto de enlace de destino original de cada mensaje.
Una cola de letra muerta asociada a una SNS suscripción de Amazon es una cola normal de Amazon. SQS Para obtener más información acerca del período de retención de mensajes, consulte Cuotas relacionadas con los mensajes en la Guía para desarrolladores de Amazon Simple Queue Service. Puedes cambiar el período de retención de los mensajes mediante la SQS SetQueueAttributes
API acción de Amazon. Para que las aplicaciones sean más resistentes, le recomendamos que establezca el período máximo de retención de las colas de mensajes fallidos en 14 días.
¿Cómo se transfieren los mensajes a una cola de mensajes fallidos?
Los mensajes se transfieren a la cola de mensajes fallidos a través de una política de redireccionamiento. Una política de redrive es un JSON objeto que hace referencia a la ARN cola de letra muerta. El atributo especifica eldeadLetterTargetArn
. ARN ARNDebe apuntar a una SQS cola de Amazon en la misma región Cuenta de AWS y región que tu SNS suscripción de Amazon. Para obtener más información, consulte Configuración de una cola de SNS cartas muertas de Amazon para una suscripción.
El siguiente JSON objeto es un ejemplo de política de redrive, adjunto a una SNS suscripción.
{
"deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue"
}
¿Cómo puedo sacar los mensajes de una cola de mensajes fallidos?
Los mensajes se pueden sacar de la cola de mensajes fallidos de dos formas:
-
Evite escribir la lógica de SQS consumo de Amazon: configure su cola de cartas sin salida como fuente de eventos para la función Lambda para agotar su cola de cartas sin salida.
-
Escribe la lógica de SQS consumo de Amazon: usa Amazon SQS API o AWS CLI escribe una lógica de consumidor personalizada para sondear, procesar y eliminar los mensajes de la cola de letra muerta. AWS SDK
¿Cómo puedo monitorizar y registrar las colas de mensajes fallidos?
Puedes usar CloudWatch las métricas de Amazon para monitorear las colas de cartas muertas asociadas a tus suscripciones de Amazon. SNS Todas las SQS colas de Amazon emiten CloudWatch métricas a intervalos de un minuto. Para obtener más información, consulte CloudWatch las métricas disponibles de Amazon SQS en la Guía para desarrolladores de Amazon Simple Queue Service. Todas las SNS suscripciones de Amazon con colas de letra muerta también emiten métricas. CloudWatch Para obtener más información, consulte Supervisar SNS los temas de Amazon mediante CloudWatch.
Para recibir notificaciones sobre la actividad en tus colas de espera, puedes usar métricas y alarmas. CloudWatch No es adecuado configurar una alarma para la NumberOfMessagesSent
métrica porque esta métrica no captura los mensajes que se envían a a DLQ como resultado de intentos de procesamiento fallidos. En su lugar, utilice la ApproximateNumberOfMessagesVisible
métrica, que captura todos los mensajes disponibles actualmente en elDLQ, incluidos los que se han trasladado debido a errores de procesamiento.
Ejemplo de configuración CloudWatch de alarma
-
Cree una CloudWatchalarma para la
ApproximateNumberOfMessagesVisible
métrica. -
Establezca el umbral de alarma en 1 (u otro valor adecuado en función de sus expectativas y DLQ del tráfico).
-
Especifica un SNS tema de Amazon al que se le notificará cuando suene la alarma. Este SNS tema de Amazon puede enviar tu notificación de alarma a cualquier tipo de punto final (como una dirección de correo electrónico, un número de teléfono o una aplicación de buscapersonas móvil).
Puedes usar CloudWatch los registros para investigar las excepciones que hacen que SNS las entregas de Amazon fallen y para que los mensajes se envíen a colas de letra muerta. Amazon SNS puede registrar tanto las entregas correctas como las fallidas CloudWatch. Para obtener más información, consulte Atributos SNS de la aplicación móvil Amazon.