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.
Configuración de una cola de mensajes fallidos de Amazon SNS para una suscripción
Una cola de mensajes fallidos es una cola de Amazon SQS a la que una suscripción de Amazon SNS puede enviar mensajes que no se pueden entregar de manera correcta 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 Colas de mensajes fallidos de Amazon SNS y Reintento de entrega de mensajes de Amazon SNS.
En esta página, se muestra cómo puede utilizar el AWS Management Console, un AWS SDK AWS CLI, y AWS CloudFormation para configurar una cola de cartas muertas para una suscripción a Amazon SNS.
nota
En un tema FIFO, puede usar una cola FIFO de Amazon SQS como una cola de mensajes fallidos para la suscripción de Amazon SNS. Las suscripciones a temas FIFO utilizan colas FIFO y las suscripciones a temas estándar utilizan colas estándar.
Requisitos previos
Antes de configurar una cola de mensajes fallidos, complete los siguientes requisitos previos:
-
Cree un tema de Amazon SNS llamado
MyTopic
. -
Cree una cola de Amazon SQS llamada
MyEndpoint
con el fin de utilizarla como punto de enlace para la suscripción de Amazon SNS. -
(Omitir para AWS CloudFormation) Suscriba la cola al tema.
-
Cree otra cola de Amazon SQS llamada
MyDeadLetterQueue
con el fin de utilizarla como cola de mensajes fallidos para la suscripción de Amazon SNS. -
Para conceder a la entidad principal de Amazon SNS acceso a la acción de la API de Amazon SQS, establezca la siguiente política de cola para
MyDeadLetterQueue
.
Para configurar una cola de espera para una suscripción a Amazon SNS mediante el AWS Management Console
Asegúrese de completar los requisitos previos antes de comenzar con este tutorial.
-
Inicie sesión en la consola de Amazon SQS
. -
Cree una cola de Amazon SQS o utilice una cola existente, y anote su ARN en la pestaña Detalles de la cola; por ejemplo:
arn:aws:sqs:
us-east-2
:123456789012
:MyDeadLetterQueue
Inicie sesión en la consola de Amazon SNS
. -
En el panel de navegación, seleccione Subscriptions (Suscripciones).
-
En la página Subscriptions (Suscripciones), seleccione una suscripción existente y haga clic en Edit (Editar).
-
En la
1234a567-bc89-012d-3e45-6fg7h890123i
página de edición, amplíe la sección Política de Redrive (cola de cartas no válidas) y, a continuación, haga lo siguiente:-
Elija Enabled (Habilitado).
-
Especifique el ARN de una cola de Amazon SQS.
-
-
Seleccione Save changes (Guardar cambios).
Su suscripción está configurada para usar una cola de mensajes fallidos.
Para configurar una cola de espera para una suscripción a Amazon SNS mediante un SDK AWS
Asegúrese de completar los requisitos previos antes de ejecutar este ejemplo.
Para usar un AWS SDK, debe configurarlo con sus credenciales. Para obtener más información, consulte Los archivos de configuración y credenciales compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas.
En el siguiente ejemplo de código, se muestra cómo utilizar SetSubscriptionAttributesRedrivePolicy
.
Para configurar una cola de espera para una suscripción a Amazon SNS mediante el AWS CLI
Asegúrese de completar los requisitos previos antes de comenzar con este tutorial.
-
Instalar y configurar la AWS CLI. Para obtener más información, consulte la Guía del usuario de AWS Command Line Interface .
-
Use el siguiente comando.
aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:
us-east-2
:123456789012
:MyEndpoint
:1234a567-bc89-012d-3e45-6fg7h890123i
--attribute-name RedrivePolicy --attribute-value "{\"deadLetterTargetArn\": \"arn:aws:sqs:us-east-2
:123456789012
:MyDeadLetterQueue
\"}"
Para configurar una cola de espera para una suscripción a Amazon SNS mediante AWS CloudFormation
Asegúrese de completar los requisitos previos antes de comenzar con este tutorial.
-
Copie el siguiente código JSON a un archivo denominado
MyDeadLetterQueue.json
.{ "Resources": { "mySubscription": { "Type" : "AWS::SNS::Subscription", "Properties" : { "Protocol": "sqs", "Endpoint": "arn:aws:sqs:
us-east-2
:123456789012
:MyEndpoint
", "TopicArn": "arn:aws:sns:us-east-2
:123456789012
:MyTopic
", "RedrivePolicy": { "deadLetterTargetArn": "arn:aws:sqs:us-east-2
:123456789012
:MyDeadLetterQueue
" } } } } } -
Inicie sesión en la consola de AWS CloudFormation
. -
En la página Select Template (Seleccionar plantilla), elija Upload a template to Amazon S3 (Cargar una plantilla en Amazon S3), seleccione el archivo
MyDeadLetterQueue.json
y haga clic en Next (Siguiente). -
En la página Specify Details (Especificar detalles), escriba
MyDeadLetterQueue
en Stack Name (Nombre de pila) y haga clic en Next (Siguiente). -
En la página Opciones, seleccione Siguiente.
-
En la página Review (Revisar), elija Create (Crear).
AWS CloudFormation comienza a crear la
MyDeadLetterQueue
pila y muestra el estado CREATE_IN_PROGRESS. Cuando se completa el proceso, muestra el estado CREATE_COMPLETE. AWS CloudFormation