

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.

# Utilisation des files d'attente de lettres mortes dans Amazon SQS
<a name="examples-sqs-dead-letter-queues"></a>

Amazon SQS fournit une assistance pour les files d'attente *lettre morte*. Une file d'attente de lettres mortes est une file que d'autres files d'attente peuvent cibler pour les messages qui ne peuvent pas être traités correctement. Vous pouvez mettre de côté et isoler ces messages dans la file d'attente de lettres mortes pour déterminer pourquoi leur traitement a échoué.

Pour créer une file d'attente lettre morte, vous devez d'abord créer une *politique de redrive*, puis définir cette politique dans les attributs de la file d'attente.

**Important**  
Une file d'attente en lettres mortes doit être du même type (FIFO ou standard) que la file source. Il doit également être créé à l'aide de la même file d'attente Compte AWS et de Région AWS celle de la file source.

## Conditions préalables
<a name="codeExamplePrereq"></a>

Avant de commencer, nous vous recommandons de lire [Commencer à utiliser le AWS SDK pour C\$1\$1](getting-started.md). 

Téléchargez l'exemple de code et créez la solution comme décrit dans[Commencer par des exemples de code](getting-started-code-examples.md). 

Pour exécuter les exemples, le profil utilisateur que votre code utilise pour effectuer les demandes doit disposer des autorisations appropriées AWS (pour le service et l'action). Pour plus d'informations, consultez la section [Fourniture AWS d'informations d'identification](credentials.md).

## Création d'une politique de redrive
<a name="sqs-dead-letter-queue-create-redrive-policy"></a>

Une politique de redrive est spécifiée en JSON. Pour le créer, vous pouvez utiliser la classe utilitaire JSON fournie avec le AWS SDK pour C\$1\$1.

Voici un exemple de fonction qui crée une politique de redrive en lui fournissant l'ARN de votre file d'attente de lettres mortes et le nombre maximum de fois que le message peut être reçu et non traité avant d'être envoyé dans la file d'attente de lettres mortes.

 **Comprend** 

```
#include <aws/core/Aws.h>
#include <aws/core/utils/json/JsonSerializer.h>
```

 **Code** 

```
Aws::String MakeRedrivePolicy(const Aws::String &queueArn, int maxReceiveCount) {
    Aws::Utils::Json::JsonValue redrive_arn_entry;
    redrive_arn_entry.AsString(queueArn);

    Aws::Utils::Json::JsonValue max_msg_entry;
    max_msg_entry.AsInteger(maxReceiveCount);

    Aws::Utils::Json::JsonValue policy_map;
    policy_map.WithObject("deadLetterTargetArn", redrive_arn_entry);
    policy_map.WithObject("maxReceiveCount", max_msg_entry);

    return policy_map.View().WriteReadable();
}
```

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sqs/dead_letter_queue.cpp).

## Définissez la politique de redrive sur votre file d'attente source
<a name="sqs-dead-letter-queue-set-redrive-policy"></a>

Pour terminer la configuration de votre file d'attente de lettres mortes, appelez la SQSClient fonction `SetQueueAttributes` membre de la classe avec un [SetQueueAttributesRequest](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-sqs/html/class_aws_1_1_s_q_s_1_1_model_1_1_set_queue_attributes_request.html)objet dont vous avez défini l'`RedrivePolicy`attribut avec votre politique de redrive JSON.

 **Comprend** 

```
#include <aws/sqs/SQSClient.h>
#include <aws/sqs/model/SetQueueAttributesRequest.h>
#include <iostream>
```

 **Code** 

```
    Aws::SQS::Model::SetQueueAttributesRequest request;
    request.SetQueueUrl(srcQueueUrl);
    request.AddAttributes(
            Aws::SQS::Model::QueueAttributeName::RedrivePolicy,
            redrivePolicy);

    const Aws::SQS::Model::SetQueueAttributesOutcome outcome =
            sqsClient.SetQueueAttributes(request);
    if (outcome.IsSuccess()) {
        std::cout << "Successfully set dead letter queue for queue  " <<
                  srcQueueUrl << " to " << deadLetterQueueARN << std::endl;
    }
    else {
        std::cerr << "Error setting dead letter queue for queue " <<
                  srcQueueUrl << ": " << outcome.GetError().GetMessage() <<
                  std::endl;
    }
```

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sqs/dead_letter_queue.cpp).

## Plus d'informations
<a name="more-info"></a>
+  [Utilisation des files d'attente « Dead Letter » d'Amazon SQS dans le guide du développeur Amazon Simple Queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) Service
+  [SetQueueAttributes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)dans la référence de l'API Amazon Simple Queue Service