Configurazione di una coda Amazon SNS dead-letter per un abbonamento - Amazon Simple Notification Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di una coda Amazon SNS dead-letter per un abbonamento

Una coda di lettere morte è una coda Amazon a SQS cui un SNS abbonamento Amazon può indirizzare per i messaggi che non possono essere recapitati correttamente agli abbonati. I messaggi che non possono essere recapitati a causa di errori client o errori server vengono mantenuti nella coda DLQ per ulteriori analisi o elaborazione. Per ulteriori informazioni, consulta Code di lettere non SNS ricevute su Amazon e Tentativi di recapito dei SNS messaggi Amazon.

Questa pagina mostra come utilizzare AWS Management Console, an, the AWS SDK AWS CLI, e AWS CloudFormation per configurare una coda di lettere non scritte per un abbonamento Amazon. SNS

Nota

Per un FIFOargomento, puoi utilizzare una SQS coda Amazon come coda di lettere non scritte per l'abbonamento Amazon. SNS FIFOle sottoscrizioni agli argomenti utilizzano le FIFO code e le sottoscrizioni agli argomenti standard utilizzano le code standard.

Prerequisiti

Prima di configurare una coda DLQ, completare i seguenti prerequisiti:

  1. Crea un SNS argomento Amazon denominatoMyTopic.

  2. Crea una SQS coda Amazon denominataMyEndpoint, da utilizzare come endpoint per l'abbonamento AmazonSNS.

  3. (Salta per AWS CloudFormation) Iscriviti alla coda per accedere all'argomento.

  4. Crea un'altra SQS coda Amazon denominataMyDeadLetterQueue, da utilizzare come coda di lettere non scritte per l'abbonamento Amazon. SNS

  5. Per consentire ad Amazon l'accesso SNS principale all'SQSAPIazione Amazon, imposta la seguente politica di coda perMyDeadLetterQueue.

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

Per configurare una coda di lettere non scritte per un abbonamento Amazon utilizzando SNS AWS Management Console

Prima di iniziare questo tutorial, completare i prerequisiti descritti di seguito.

  1. Accedi alla SQSconsole Amazon.

  2. Crea una SQS coda Amazon o usa una coda esistente e annota la ARN coda nella scheda Dettagli della coda, ad esempio:

    arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
  3. Accedi alla SNSconsole Amazon.

  4. Nel riquadro di navigazione, scegli Sottoscrizioni.

  5. Sulla pagina Subscriptions (Abbonamenti), selezionare una sottoscrizione esistente, quindi scegliere Edit (Modifica).

  6. Nella sezione Modifica 1234a567-bc89-012d-3e45-6fg7h890123iespandi la sezione Redrive policy (dead-letter queue), quindi procedi come segue:

    1. Scegli Enabled (Abilitato).

    2. Specificare il nome ARN di una SQS coda Amazon.

  7. Scegli Save changes (Salva modifiche).

    La sottoscrizione è configurata per l'utilizzo di una coda dead-letter.

Per configurare una coda di lettere non scritte per un abbonamento Amazon SNS utilizzando un AWS SDK

Prima di eseguire questo esempio, completare i prerequisiti.

Per utilizzare un AWS SDK, devi configurarlo con le tue credenziali. Per ulteriori informazioni, consulta I file di configurazione e credenziali condivisi nella AWS SDKs and Tools Reference Guide.

Il seguente esempio di codice mostra come utilizzare. SetSubscriptionAttributesRedrivePolicy

Java
SDKper Java 1.x
Nota

C'è di più su. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice 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);

Per configurare una coda di lettere non scritte per un abbonamento Amazon utilizzando SNS AWS CLI

Prima di iniziare questo tutorial, completare i prerequisiti descritti di seguito.

  1. Istalla e configura la AWS CLI. Per ulteriori informazioni, consulta la Guida per l'utente AWS Command Line Interface .

  2. Utilizza il seguente 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\"}"

Per configurare una coda di lettere non scritte per un abbonamento Amazon utilizzando SNS AWS CloudFormation

Prima di iniziare questo tutorial, completare i prerequisiti descritti di seguito.

  1. Copia il JSON codice seguente in un file denominatoMyDeadLetterQueue.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. Accedi alla console AWS CloudFormation.

  3. Nella pagina Select Template (Seleziona modello) scegliere Upload a template to Amazon S3 (Carica un modello in Amazon S3), selezionare il file MyDeadLetterQueue.json, quindi scegliere Next (Avanti).

  4. Nella pagina Specify Details (Specifica dettagli), digitare MyDeadLetterQueue per Stack Name (Nome stack), quindi scegliere Next (Avanti).

  5. Nella pagina Opzioni, scegli Next (Avanti).

  6. Nella pagina Revisione scegli Create (Crea).

    AWS CloudFormation inizia a creare lo MyDeadLetterQueue stack e visualizza lo stato CREATE_IN_ PROGRESS. Quando il processo è completo, AWS CloudFormation visualizza lo stato _. CREATE COMPLETE