Salta al contenuto

Perché i miei messaggi Amazon SQS vengono inviati inaspettatamente a una coda DLQ?

2 minuti di lettura
0

Ho configurato una coda DLQ in Amazon Simple Queue Service (Amazon SQS). I miei messaggi Amazon SQS sono stati trasferiti inaspettatamente nella coda DLQ e vorrei capire perché.

Risoluzione

I messaggi Amazon SQS potrebbero essere trasferiti nella coda DLQ per i seguenti motivi.

ReceiveCount supera maxReceiveCount

Il valore maxReceiveCount predefinito è 10. Quando il valore ReceiveCount supera il valore maxReceiveCount per una coda, Amazon SQS trasferisce il messaggio nella coda DLQ. Per risolvere il problema, è consigliabile impostare un valore maxReceiveCount sufficientemente alto da consentire tentativi ripetuti in Amazon SQS. Ad esempio, se il valore maxReceiveCount è impostato su 1, la mancata ricezione di un messaggio ne causa il trasferimento nella coda DLQ.

La funzione Lambda richiede una configurazione aggiuntiva

Se utilizzi una funzione AWS Lambda per elaborare i messaggi nella coda Amazon SQS, potresti dover riconfigurare la funzione. Per ulteriori informazioni, consulta Perché la mia funzione Lambda riprova i messaggi Amazon SQS validi e li inserisce nella mia coda DLQ?

Hai utilizzato la Console di gestione AWS per visualizzare messaggi SQS

I messaggi SQS visualizzati nella Console di gestione AWS potrebbero essere trasferiti nella coda DLQ perché vengono conteggiati ai fini della policy di redrive della coda. Puoi aumentare il valore Maximum receives per la policy di redrive della coda DLQ fino a 1.000. Per ulteriori informazioni, consulta Configura una coda DLQ utilizzando la console Amazon SQS.

Hai provato a eliminare messaggi SQS con un ReceiptHandle scaduto o dopo il periodo di timeout di visibilità

I messaggi vengono trasferiti nella DLQ dopo i nuovi tentativi. L'errore QueueDoesNotExist può verificarsi quando esegui un'operazione DeleteMessage con un ReceiptHandle precedente della coda principale. Devi eliminare i messaggi all'interno della finestra VisibilityTimeout configurata. Per ulteriori informazioni, consulta In che modo posso risolvere l'errore QueueDoesNotExist quando effettuo chiamate API alla mia coda Amazon SQS?

Informazioni correlate

Utilizzo di code DLQ in Amazon SQS