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à.
Code di lettere non SNS ricevute su Amazon
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 Configurazione di una coda Amazon SNS dead-letter per un abbonamento e Tentativi di recapito dei SNS messaggi Amazon.
Nota
L'SNSabbonamento Amazon e la SQS coda Amazon devono appartenere allo stesso AWS account e alla stessa regione.
-
Per un FIFOargomento, puoi utilizzare una SQS coda Amazon come coda di lettere non scritte per l'abbonamento Amazon. SNS FIFOgli abbonamenti agli argomenti utilizzano le FIFO code e gli abbonamenti agli argomenti standard utilizzano le code standard.
Per utilizzare una SQS coda Amazon crittografata come coda di lettere non scritte, devi utilizzare una politica personalizzata KMS con una chiave che garantisca al SNS servizio Amazon l'accesso principale alle azioni. AWS KMS API Per ulteriori informazioni, consulta Protezione dei SNS dati Amazon con la crittografia lato server questa guida e Protection Amazon SQS Data Using Server-Side Encryption (SSE) e AWS KMS la Amazon Simple Queue Service Developer Guide.
Argomenti
Perché le consegne dei messaggi non riescono?
In generale, la consegna dei messaggi non riesce quando Amazon non SNS riesce ad accedere a un endpoint sottoscritto a causa di un errore lato client o lato server. Quando Amazon SNS riceve un errore sul lato client o continua a ricevere un errore sul lato server per un messaggio oltre il numero di tentativi specificato dalla politica di ripetizione corrispondente, Amazon SNS scarta il messaggio, a meno che non sia allegata una coda di lettere morte all'abbonamento. Le consegne non riuscite non modificano lo stato delle sottoscrizioni. Per ulteriori informazioni, consulta Tentativi di recapito dei SNS messaggi Amazon.
Errori lato client
Gli errori sul lato client possono verificarsi quando Amazon SNS ha metadati di abbonamento obsoleti. Questi errori si verificano in genere quando un proprietario elimina l'endpoint (ad esempio, una funzione Lambda sottoscritta a un argomento di SNS Amazon) o quando un proprietario modifica la politica allegata all'endpoint sottoscritto in modo da impedire ad SNS Amazon di recapitare messaggi all'endpoint. Amazon SNS non riprova il recapito del messaggio che non va a buon fine a causa di un errore sul lato client.
Errori lato server
Gli errori sul lato server possono verificarsi quando il sistema responsabile dell'endpoint sottoscritto diventa non disponibile o restituisce un'eccezione che indica che non è in grado di elaborare una richiesta valida da Amazon. SNS Quando si verificano errori sul lato server, Amazon SNS ritenta le consegne non riuscite utilizzando una funzione di backoff lineare o esponenziale. In caso di errori lato server causati da endpoint AWS gestiti supportati da Amazon oppureSQS, AWS Lambda Amazon SNS riprova la consegna fino a 100.015 volte, nell'arco di 23 giorni.
Anche gli endpoint gestiti dal cliente (come HTTP SMTPSMS, o mobile push) possono causare errori sul lato server. Amazon SNS riprova la consegna anche a questi tipi di endpoint. Sebbene gli HTTP endpoint supportino politiche di riprova definite dal cliente, Amazon SNS imposta una politica interna di ripetizione dei tentativi di consegna per 50 volte nell'arco di 6 ore SMTPSMS, per gli endpoint push mobili.
Come funzionano le code DLQ?
Una coda di lettere non scritte è allegata a un SNS abbonamento Amazon (anziché a un argomento) perché le consegne dei messaggi avvengono a livello di abbonamento. In questo modo è possibile identificare più facilmente l'endpoint di destinazione originale per ogni messaggio.
Una coda di lettere non scritte associata a un SNS abbonamento Amazon è una normale coda Amazon. SQS Per ulteriori informazioni sul periodo di conservazione dei messaggi, consulta Quote correlate ai messaggi nella Guida per sviluppatori Amazon Simple Queue Service. Puoi modificare il periodo di conservazione dei messaggi utilizzando l'SQSSetQueueAttributes
APIazione Amazon. Per rendere le applicazioni più resilienti, è consigliabile impostare il periodo massimo di conservazione per le code dead-letter a 14 giorni.
Come vengono spostati i messaggi in una coda DLQ?
I messaggi vengono spostati in una coda dead-letter utilizzando una policy di redrive. Una politica di redrive è un JSON oggetto che fa riferimento alla coda ARN delle lettere morte. L'attributo specifica il. deadLetterTargetArn
ARN ARNDeve indicare una SQS coda Amazon nella stessa Account AWS regione del tuo SNS abbonamento Amazon. Per ulteriori informazioni, consulta Configurazione di una coda Amazon SNS dead-letter per un abbonamento.
Il seguente JSON oggetto è un esempio di politica di redrive, allegata a un SNS abbonamento.
{
"deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue"
}
Come posso spostare i messaggi fuori da una coda DLQ?
È possibile spostare i messaggi fuori da una coda dead-letter in due modi:
-
Evita di scrivere la logica di SQS consumo di Amazon: imposta la coda di lettere non scritte come origine di eventi per la funzione Lambda per svuotare la coda di lettere non scritte.
-
Scrivi la logica di SQS consumo di Amazon: usa Amazon SQS API o per AWS CLI scrivere una logica di consumo personalizzata per il polling, l'elaborazione e l'eliminazione dei messaggi nella coda delle lettere morte. AWS SDK
Come posso monitorare e registrare code DLQ?
Puoi utilizzare i CloudWatch parametri di Amazon per monitorare le code di posta indesiderata associate ai tuoi abbonamenti Amazon. SNS Tutte le SQS code di Amazon emettono CloudWatch parametri a intervalli di un minuto. Per ulteriori informazioni, consulta CloudWatch Parametri disponibili per Amazon SQS nella Amazon Simple Queue Service Developer Guide. Tutti gli SNS abbonamenti Amazon con code di lettera morta emettono anche parametri. CloudWatch Per ulteriori informazioni, consulta Monitoraggio SNS degli argomenti di Amazon tramite CloudWatch.
Per ricevere notifiche sull'attività nelle code di posta indesiderata, puoi utilizzare metriche e allarmi. CloudWatch L'impostazione di un allarme per la NumberOfMessagesSent
metrica non è adatta perché questa metrica non acquisisce i messaggi inviati a a DLQ come risultato di tentativi di elaborazione falliti. Utilizza invece la ApproximateNumberOfMessagesVisible
metrica, che acquisisce tutti i messaggi attualmente disponibili inDLQ, inclusi quelli spostati a causa di errori di elaborazione.
Esempio di configurazione degli allarmi CloudWatch
-
Crea un CloudWatchallarme per la
ApproximateNumberOfMessagesVisible
metrica. -
Imposta la soglia di allarme su 1 (o su un altro valore appropriato in base alle aspettative e al DLQ traffico).
-
Specificate un SNS argomento Amazon per ricevere una notifica quando scatta l'allarme. Questo SNS argomento di Amazon può inviare una notifica di allarme a qualsiasi tipo di endpoint (ad esempio un indirizzo e-mail, un numero di telefono o un'app per dispositivi mobili).
Puoi utilizzare CloudWatch Logs per esaminare le eccezioni che causano il fallimento delle SNS consegne Amazon e per l'invio dei messaggi a code di lettera morta. Amazon SNS può registrare sia le consegne riuscite che quelle non riuscite. CloudWatch Per ulteriori informazioni, consulta Attributi SNS delle app mobili Amazon.