

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Gestion des erreurs et messages problématiques sur Amazon SQS
<a name="best-practices-error-handling"></a>

Cette rubrique fournit des instructions détaillées sur la gestion et l'atténuation des erreurs dans Amazon SQS, notamment les techniques de gestion des erreurs de demande, de capture des messages problématiques et de configuration de la conservation des files d'attente de lettres mortes afin de garantir la fiabilité des messages.

****Rubriques****
+ [Gestion des erreurs de demande dans Amazon SQS](handling-request-errors.md)
+ [Capture des messages problématiques dans Amazon SQS](capturing-problematic-messages.md)
+ [Configuration de la conservation des files d'attente de lettres mortes dans Amazon SQS](setting-up-dead-letter-queue-retention.md)

# Gestion des erreurs de demande dans Amazon SQS
<a name="handling-request-errors"></a>

Pour gérer les erreurs de demande, utilisez l'une des stratégies suivantes :
+ Si vous utilisez un AWS SDK, vous disposez déjà d'une logique de *réessai et d'annulation* automatiques. Pour plus d'informations, consultez [Error Retries and Exponential Backoff in AWS(Tentatives sur l'erreur et backoff exponentiel))](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) dans *Référence générale d'Amazon Web Services*.
+ Si vous n'utilisez pas les fonctionnalités du AWS SDK pour réessayer et annuler, attendez une pause (par exemple, 200 ms) avant de réessayer l'[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)action après n'avoir reçu aucun message, un délai d'expiration ou un message d'erreur d'Amazon SQS. Pour permettre une utilisation ultérieure de `ReceiveMessage` qui donne les mêmes résultats, patientez plus longtemps (par exemple, 400 ms). 

# Capture des messages problématiques dans Amazon SQS
<a name="capturing-problematic-messages"></a>

Pour capturer tous les messages qui ne peuvent pas être traités et pour collecter des CloudWatch statistiques précises, configurez une file d'attente de [lettres mortes](sqs-dead-letter-queues.md).
+ La stratégie de redirection redirige les messages vers une file d'attente de lettres mortes lorsque la file d'attente source ne parvient pas à traiter un message après un nombre de tentatives spécifique.
+ L'utilisation d'une file d'attente de lettres mortes limite le nombre de messages et réduit la possibilité d'être exposé à des messages *de type « poison pill »* (messages reçus mais ne pouvant pas être traités).
+ L'inclusion d'un message de pilule empoisonnée dans une file d'attente peut fausser la [`ApproximateAgeOfOldestMessage`](sqs-available-cloudwatch-metrics.md) CloudWatch métrique en indiquant un âge incorrect au message de pilule empoisonnée. La configuration d'une file d'attente de lettres mortes contribue à éviter les fausses alarmes lors de l'utilisation de cette métrique.

# Configuration de la conservation des files d'attente de lettres mortes dans Amazon SQS
<a name="setting-up-dead-letter-queue-retention"></a>

Pour les files d'attente standard, l'expiration d'un message est toujours basée sur son horodatage de mise en file d'attente d'origine. Lorsqu'un message est déplacé vers une file d'attente de lettres mortes, l'horodatage de la mise en file d'attente reste inchangé. La métrique `ApproximateAgeOfOldestMessage` indique à quel moment le message a été placé dans la file d'attente de lettres mortes, et *non* à quel moment le message a été initialement envoyé. Supposons, par exemple, qu'un message passe 1 journée dans la file d'attente d'origine avant d'être déplacé vers une file d'attente de lettres mortes. Si la période de conservation de la file d'attente de lettres mortes est de 4 jours, le message est supprimé de la file d'attente de lettres mortes au bout de 3 jours et le paramètre `ApproximateAgeOfOldestMessage` est défini sur 3 jours. Il est donc recommandé de toujours définir la période de rétention d'une file d'attente de lettres mortes de manière à ce qu'elle soit plus longue que la période de rétention de la file d'attente d'origine.

Pour les files d'attente FIFO, l'horodatage de la mise en file d'attente est réinitialisé lorsque le message est déplacé vers une file d'attente de lettres mortes. La métrique `ApproximateAgeOfOldestMessage` indique à quel moment le message a été placé dans la file d'attente de lettres mortes. Dans le même exemple ci-dessus, le message est supprimé de la file d'attente de lettres mortes au bout de 4 jours et le paramètre `ApproximateAgeOfOldestMessage` est défini sur 4 jours.