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 una sottoscrizione
Una coda DLQ è una coda Amazon SQS a cui un abbonamento Amazon SNS può mirare 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 ricevute di Amazon SNS e Tentativi di consegna dei messaggi di Amazon SNS.
Questa pagina mostra come utilizzare AWS Management Console, un AWS SDK AWS CLI, e configurare una coda di lettere non scritte AWS CloudFormation per un abbonamento Amazon SNS.
Nota
Per un Argomento FIFO, puoi utilizzare una coda di Amazon SQS come una coda DLQ per la sottoscrizione ad Amazon SNS. Le sottoscrizioni agli argomenti FIFO utilizzano le code FIFO e le sottoscrizioni agli argomenti standard utilizzano le code standard.
Prerequisiti
Prima di configurare una coda DLQ, completare i seguenti prerequisiti:
-
Creare un argomento Amazon SNS, denominato
MyTopic
. -
Crear una coda Amazon SQS denominata
MyEndpoint
, da utilizzare come endpoint per l'abbonamento Amazon SNS. -
(Salta per AWS CloudFormation) Iscriviti alla coda per accedere all'argomento.
-
Creare un'altra coda Amazon SQS denominata
MyDeadLetterQueue
, da utilizzare come coda dead-letter per la sottoscrizione Amazon SNS. -
Per concedere l'accesso Amazon SNS principale all'azione Amazon SQS API, impostare la policy della coda seguente per
MyDeadLetterQueue
.{ "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 SNS utilizzando AWS Management Console
Prima di iniziare questo tutorial, completare i prerequisiti descritti di seguito.
-
Accedere alla console Amazon SQS
. -
Creare una coda Amazon SQS o utilizzare una coda esistente e prendere nota dell'ARN della coda nella scheda Details (Dettagli) della coda, ad esempio:
arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
Accedi alla console Amazon SNS
. -
Nel riquadro di navigazione, scegli Sottoscrizioni.
-
Sulla pagina Subscriptions (Abbonamenti), selezionare una sottoscrizione esistente, quindi scegliere Edit (Modifica).
-
Nella
1234a567-bc89-012d-3e45-6fg7h890123i
pagina Modifica, espandi la sezione Redrive policy (dead-letter queue), quindi procedi come segue:-
Scegli Enabled (Abilitato).
-
Specificare l'ARN di una coda Amazon SQS.
-
-
Seleziona 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 SDK AWS
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 and Tools Reference AWS SDKs Guide.
Il seguente esempio di codice mostra come utilizzare. SetSubscriptionAttributesRedrivePolicy
Per configurare una coda di lettere non scritte per un abbonamento Amazon SNS utilizzando AWS CLI
Prima di iniziare questo tutorial, completare i prerequisiti descritti di seguito.
-
Istalla e configura la AWS CLI. Per ulteriori informazioni, consulta la Guida per l'utente AWS Command Line Interface .
-
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 SNS utilizzando AWS CloudFormation
Prima di iniziare questo tutorial, completare i prerequisiti.
-
Copia il seguente codice JSON in un file denominato
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" } } } } }
-
Accedi alla console AWS CloudFormation
. -
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). -
Nella pagina Specify Details (Specifica dettagli), digitare
MyDeadLetterQueue
per Stack Name (Nome stack), quindi scegliere Next (Avanti). -
Nella pagina Opzioni, scegli Next (Avanti).
-
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, visualizza lo stato CREATE_COMPLETE. AWS CloudFormation