

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à.

# Risolvi i problemi relativi alla coda di lettera morta di Amazon SQS e al redrive DLQ
<a name="troubleshooting-dlq-redrive"></a>

I seguenti argomenti trattano le cause più comuni dei problemi di Amazon SQS DLQ e DLQ redrive e come risolverli. Per ulteriori informazioni, consulta [Come posso risolvere i problemi di redrive DLQ di Amazon SQS](https://repost.aws/knowledge-center/sqs-dead-letter-queue-redrive)? *nella Knowledge Center Guide.AWS *

## Problemi relativi al DLQ
<a name="troubleshooting-dlq-issues"></a>

Scopri i problemi DLQ più comuni e come risolverli.

### La visualizzazione dei messaggi utilizzando la console può comportarne il trasferimento a una coda DLQ
<a name="sqs-dlq-console"></a>

Amazon SQS conteggia la visualizzazione di un messaggio nella console rispetto alle policy di redrive della coda corrispondente. Pertanto, se si visualizza un messaggio nella console il numero di volte specificato nella politica di redrive della coda corrispondente, il messaggio viene spostato nella coda di lettere morte della coda corrispondente.

Per correggere questo comportamento, puoi procedere in uno dei seguenti modi:
+ Aumentare l'impostazione **Maximum Receives** (Ricezioni massime) per la policy di reindirizzamento della coda corrispondente.
+ Evitare di visualizzare i messaggi della coda corrispondente nella console.

### `NumberOfMessagesSent` e `NumberOfMessagesReceived` per una coda DLQ non corrispondono
<a name="sqs-dlq-number-of-messages"></a>

Se invii un messaggio a una coda DLQ manualmente, viene acquisito dal parametro [`NumberOfMessagesSent`](sqs-available-cloudwatch-metrics.md). Tuttavia, se viene inviato un messaggio a una coda DLQ a seguito di un tentativo di elaborazione non riuscito, non viene acquisito da questo parametro. Pertanto, è possibile che i valori [`NumberOfMessagesReceived`](sqs-available-cloudwatch-metrics.md)di `NumberOfMessagesSent` e siano diversi.

### Creazione e configurazione di un redrive per una coda di lettere non scritte
<a name="sqs-dlq-redrive-permissions"></a>

Il redrive della coda di lettere morte richiede l'impostazione delle autorizzazioni appropriate [per](sqs-configure-dead-letter-queue-redrive.md#sqs-configure-dead-letter-queue-redrive-permissions) Amazon SQS per ricevere messaggi dalla coda di lettere non scritte e inviare messaggi alla coda di destinazione. Se non disponi delle autorizzazioni corrette, l'operazione di reindirizzamento della coda con lettere morte può fallire. Puoi visualizzare lo stato dell'attività di reindirizzamento dei messaggi per risolvere i problemi e riprovare.

### Gestione degli errori dei messaggi di coda standard e FIFO
<a name="sqs-dead-letter-queues-handling-message-failure"></a>

[**Le code standard**](standard-queues.md) continuano a elaborare i messaggi fino alla scadenza del [periodo di conservazione](sqs-dead-letter-queues.md#understanding-message-retention-periods). Questa elaborazione continua riduce al minimo le possibilità che la coda venga bloccata da messaggi non utilizzati. La presenza di un gran numero di messaggi che l'utente non riesce a eliminare ripetutamente può aumentare i costi e comportare un carico aggiuntivo sull'hardware. Per contenere i costi, sposta i messaggi non riusciti nella coda delle lettere non valide. 

Le code standard consentono inoltre un numero elevato di messaggi in volo. Se la maggior parte dei tuoi messaggi non può essere consumata e non viene inviata a una coda di lettere morte, la velocità di elaborazione dei messaggi può rallentare. Per mantenere l'efficienza della coda, assicurati che l'applicazione gestisca correttamente l'elaborazione dei messaggi. 

Le [**code FIFO**](sqs-fifo-queues.md) garantiscono l'elaborazione "exactly-once" utilizzando messaggi in sequenza da un gruppo di messaggi. Pertanto, sebbene l'utente possa continuare a recuperare i messaggi ordinati da un altro gruppo di messaggi, il primo gruppo di messaggi rimane non disponibile fino a quando il messaggio che blocca la coda non viene elaborato correttamente o spostato in una coda di lettere morte. 

Inoltre, le code FIFO consentono un numero inferiore di messaggi in transito. Per evitare che la coda FIFO venga bloccata da un messaggio, assicurati che l'applicazione gestisca correttamente l'elaborazione dei messaggi. 

Per ulteriori informazioni, consultare [Quote per i messaggi Amazon SQS](quotas-messages.md) e [Best practice di Amazon SQS](sqs-best-practices.md). 

## Problemi con DLQ-Redrive
<a name="troubleshooting-dlq-redrive-issues"></a>

Scopri i problemi più comuni di DLQ-Redrive e come risolverli.

### AccessDenied problema di autorizzazione
<a name="accessdenied-permission-issue"></a>

L'`AccessDenied`errore si verifica quando il redrive DLQ fallisce perché l'entità AWS Identity and Access Management (IAM) non dispone delle autorizzazioni richieste. 

**Esempio di messaggio di errore:** 

```
Failed to create redrive task. Error code: AccessDenied - Queue Permissions to Redrive.
```

Le seguenti autorizzazioni API sono necessarie per effettuare richieste di redrive DLQ:

**Per avviare il reindirizzamento di un messaggio:**
+ Autorizzazioni per la coda di lettere non scritte:
  + `sqs:StartMessageMoveTask`
  + `sqs:ReceiveMessage`
  + `sqs:DeleteMessage`
  + `sqs:GetQueueAttributes`
  + `kms:Decrypt`— Quando la coda delle lettere non scritte o la coda dei sorgenti originali sono crittografate.
+ Autorizzazioni per la coda di destinazione:
  + `sqs:SendMessage`
  + `kms:GenerateDataKey`— Quando la coda di destinazione è crittografata.
  + `kms:Decrypt`— Quando la coda di destinazione è crittografata.

**Per annullare la reindirizzazione di un messaggio in corso:**
+ Autorizzazioni per la coda di lettere non scritte:
  + `sqs:CancelMessageMoveTask`
  + `sqs:ReceiveMessage`
  + `sqs:DeleteMessage`
  + `sqs:GetQueueAttributes`
  + `kms:Decrypt`— Quando la coda delle lettere non scritte o la coda dei sorgenti originali sono crittografate.

**Per mostrare lo stato dello spostamento di un messaggio:**
+ Autorizzazioni per la coda di lettere non scritte:
  + `sqs:ListMessageMoveTasks`
  + `sqs:GetQueueAttributes`

### Errore `NonExistentQueue`
<a name="nonexistentqueue-error"></a>

L'`NonExistentQueue`errore si verifica quando la coda di origine di Amazon SQS non esiste o è stata eliminata. Controlla e reindirizza a una coda Amazon SQS presente.

**Esempio di messaggio di errore:**

```
Failed: AWS.SimpleQueueService.NonExistentQueue
```

### CouldNotDetermineMessageSource errore
<a name="couldnotdeterminemessagesource-error"></a>

L'`CouldNotDetermineMessageSource`errore si verifica quando si tenta di avviare un redrive DLQ con i seguenti scenari:
+ Un messaggio Amazon SQS inviato direttamente al DLQ con API. [`SendMessage`](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)
+ Un messaggio dall'argomento AWS Lambda o dalla funzione Amazon Simple Notification Service (Amazon SNS) con il DLQ configurato.

Per risolvere questo errore, scegli **Redrive verso una destinazione personalizzata quando avvii il redrive**. Quindi, inserisci l'ARN della coda Amazon SQS per spostare tutti i messaggi dal DLQ alla coda di destinazione.

**Esempio di messaggio di errore:**

```
Failed: CouldNotDetermineMessageSource
```