

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gerenciamento de erros e mensagens problemáticas do Amazon SQS
<a name="best-practices-error-handling"></a>

Este tópico fornece instruções detalhadas sobre como gerenciar e mitigar erros no Amazon SQS, incluindo técnicas para lidar com erros de solicitação, capturar mensagens problemáticas e configurar a retenção da fila de mensagens não entregues para garantir a confiabilidade das mensagens.

****Tópicos****
+ [Gerenciamento de erros de solicitação no Amazon SQS](handling-request-errors.md)
+ [Capturar mensagens problemáticas no Amazon SQS](capturing-problematic-messages.md)
+ [Configurar a retenção da fila de mensagens não entregues no Amazon SQS](setting-up-dead-letter-queue-retention.md)

# Gerenciamento de erros de solicitação no Amazon SQS
<a name="handling-request-errors"></a>

Para gerenciar erros de solicitação, use uma das seguintes estratégias:
+ Se você usa um AWS SDK, já tem uma lógica automática de *repetição e recuo* à sua disposição. Para ter mais informações, consulte [Repetições de erro e recuo exponencial na AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) no *Referência geral da Amazon Web Services*.
+ Se você não usa os recursos do AWS SDK para tentar novamente e recuar, faça uma pausa (por exemplo, 200 ms) antes de tentar novamente a [ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)ação depois de não receber nenhuma mensagem, um tempo limite ou uma mensagem de erro do Amazon SQS. Para o uso subsequente de `ReceiveMessage` que oferece os mesmos resultados, faça uma pausa maior (por exemplo, 400 ms). 

# Capturar mensagens problemáticas no Amazon SQS
<a name="capturing-problematic-messages"></a>

Para capturar todas as mensagens que não podem ser processadas e coletar CloudWatch métricas precisas, configure uma fila de mensagens [mortas.](sqs-dead-letter-queues.md)
+ A política de redirecionamento redireciona mensagens para uma dead letter queue depois que a fila de origem falha em processar uma mensagem um número de vezes especificado.
+ O uso da dead letter queue diminui o número de mensagens e reduz a possibilidade de exposição a mensagens *poison pill* (mensagens que podem ser recebidas, mas que não podem ser processadas).
+ Incluir uma mensagem de pílula venenosa em uma fila pode distorcer a [`ApproximateAgeOfOldestMessage`](sqs-available-cloudwatch-metrics.md) CloudWatch métrica, fornecendo uma idade incorreta da mensagem da pílula venenosa. Configurar uma dead letter queue ajuda a evitar alarmes falsos ao usar essa métrica.

# Configurar a retenção da fila de mensagens não entregues no Amazon SQS
<a name="setting-up-dead-letter-queue-retention"></a>

Para filas comuns, a validade de uma mensagem é sempre baseada em seu carimbo de data/hora de enfileiramento original. Quando uma mensagem é movida para uma fila de mensagens mortas, o carimbo de data/hora de enfileiramento permanece inalterado. A métrica `ApproximateAgeOfOldestMessage` indica quando a mensagem foi movida para a fila de mensagens não entregues, *não* quando a mensagem foi originalmente enviada. Por exemplo, suponha que uma mensagem fique um dia na fila original antes de ser movida para uma fila de mensagens mortas. Se o período de retenção da fila de mensagens mortas for de quatro dias, a mensagem será excluída da fila de mensagens mortas após três dias e a `ApproximateAgeOfOldestMessage` será de três dias. Portanto, é uma prática recomendada definir sempre o período de retenção de uma fila de mensagens mortas para ser maior do que o período de retenção da fila original.

Para filas FIFO, o carimbo de data/hora da fila é redefinido quando a mensagem é movida para uma fila de mensagens não entregues. A métrica `ApproximateAgeOfOldestMessage` indica quando a mensagem foi movida para a fila de mensagens não entregues. No mesmo exemplo acima, a mensagem é excluída da fila de mensagens não entregues após quatro dias e `ApproximateAgeOfOldestMessage` é de quatro dias.