Configuración de una cola de SNS cartas muertas de Amazon para una suscripción - Amazon Simple Notification 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.

Configuración de una cola de SNS cartas muertas de Amazon para una suscripción

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 Colas de SNS cartas muertas de Amazon y Amazon vuelve a intentarlo con la entrega de SNS mensajes.

En esta página se muestra cómo puedes usar las AWS Management Console AWS SDK AWS CLI, las y AWS CloudFormation para configurar una cola de letra muerta para una suscripción de Amazon. SNS

nota

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.

Requisitos previos

Antes de configurar una cola de mensajes fallidos, complete los siguientes requisitos previos:

  1. Crea un SNS tema de Amazon llamadoMyTopic.

  2. Crea una SQS cola de Amazon con el nombre MyEndpoint para usarla como punto final de la SNS suscripción de Amazon.

  3. (Omitir para AWS CloudFormation) Suscribe la cola al tema.

  4. Crea otra SQS cola de Amazon con el nombre MyDeadLetterQueue para utilizarla como cola de letra muerta para la suscripción de Amazon. SNS

  5. Para conceder a Amazon el acceso SNS principal a la SQS API acción de Amazon, establece la siguiente política de colas paraMyDeadLetterQueue.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-2:123456789012:MyTopic" } } }] }

Para configurar una cola de cartas sin salida para una suscripción de Amazon SNS mediante el AWS Management Console

Asegúrese de completar los requisitos previos antes de comenzar con este tutorial.

  1. Inicia sesión en la SQSconsola de Amazon.

  2. Crea una SQS cola de Amazon o utiliza una cola existente y anota la ARN cola en la pestaña Detalles de la cola, por ejemplo:

    arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
  3. Inicia sesión en la SNSconsola de Amazon.

  4. En el panel de navegación, seleccione Subscriptions (Suscripciones).

  5. En la página Subscriptions (Suscripciones), seleccione una suscripción existente y haga clic en Edit (Editar).

  6. En la edición 1234a567-bc89-012d-3e45-6fg7h890123ipágina, amplíe la sección Política de Redrive (cola de cartas muertas) y, a continuación, haga lo siguiente:

    1. Elija Enabled (Habilitado).

    2. Especifica ARN la SQS cola de Amazon.

  7. Elija Guardar cambios.

    Su suscripción está configurada para usar una cola de mensajes fallidos.

Para configurar una cola de espera para una suscripción de Amazon SNS mediante un AWS SDK

Asegúrese de completar los requisitos previos antes de ejecutar este ejemplo.

Para usar una AWS SDK, debe configurarla 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 usarloSetSubscriptionAttributesRedrivePolicy.

Java
SDKpara Java 1.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

// Specify the ARN of the Amazon SNS subscription. String subscriptionArn = "arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i"; // Specify the ARN of the Amazon SQS queue to use as a dead-letter queue. String redrivePolicy = "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"; // Set the specified Amazon SQS queue as a dead-letter queue // of the specified Amazon SNS subscription by setting the RedrivePolicy attribute. SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest() .withSubscriptionArn(subscriptionArn) .withAttributeName("RedrivePolicy") .withAttributeValue(redrivePolicy); sns.setSubscriptionAttributes(request);

Para configurar una cola de cartas sin salida para una suscripción de Amazon SNS mediante el AWS CLI

Asegúrese de completar los requisitos previos antes de comenzar con este tutorial.

  1. Instalar y configurar la AWS CLI. Para obtener más información, consulte la Guía del usuario de AWS Command Line Interface .

  2. 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 cartas sin salida para una suscripción de Amazon mediante SNS AWS CloudFormation

Asegúrese de completar los requisitos previos antes de comenzar con este tutorial.

  1. Copie el siguiente JSON código en un archivo denominadoMyDeadLetterQueue.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" } } } } }
  2. Inicie sesión en la consola de AWS CloudFormation.

  3. 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).

  4. En la página Specify Details (Especificar detalles), escriba MyDeadLetterQueue en Stack Name (Nombre de pila) y haga clic en Next (Siguiente).

  5. En la página Opciones, seleccione Siguiente.

  6. 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, AWS CloudFormation muestra el estado CREATE_ COMPLETE.