Utilisation des files d'attente de lettres mortes dans Amazon SQS - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

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

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment utiliser une file d'attente pour recevoir et mettre en attente des messages en provenance d'autres files d'attente que celles-ci ne peuvent pas traiter.

Scénario

Une file d'attente de lettres mortes peut être ciblée par d'autres files d'attente (source) pour les messages ne pouvant pas être traités avec succès. 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é. Vous devez configurer individuellement chaque file d'attente source qui envoie des messages à une file d'attente de lettres mortes. Plusieurs files d'attente peuvent cibler une seule file d'attente de lettre morte.

Dans cet exemple, un module Node.js est utilisé pour acheminer des messages vers une file d'attente de lettres mortes. Le module Node.js utilise le SDK pour utiliser les files JavaScript d'attente en lettres mortes en utilisant cette méthode de la classe AWS.SQS client :

Pour plus d'informations sur les files d'attente d'Amazon SQS, consultez la section Utilisation des files d'attente d'Amazon SQS Dead Letter dans le guide du développeur Amazon Simple Queue Service.

Tâches prérequises

Pour configurer et exécuter cet exemple, vous devez d'abord :

Configuration de files d'attente source

Après avoir créé une file d'attente comme file d'attente de lettres mortes, vous devez configurer les autres files d'attente qui acheminent des messages non traités vers la file d'attente de lettres mortes. Pour ce faire, spécifiez une stratégie de redirection identifiant la file d'attente à utiliser comme file d'attente de lettres mortes, et le nombre maximum de réceptions pour les messages individuels avant que ces derniers soient acheminés vers la file d'attente de lettres mortes.

Créez un module Node.js nommé sqs_deadletterqueue.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de AWS.SQS service. Créez un objet JSON contenant les paramètres obligatoires pour mettre à jour les attributs de file d'attente, en incluant le paramètre RedrivePolicy qui spécifie à la fois l'ARN de la file d'attente de lettres mortes et la valeur maxReceiveCount. Spécifiez également l'URL de file d'attente source que vous souhaitez configurer. Appelez la méthode setQueueAttributes.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { Attributes: { RedrivePolicy: '{"deadLetterTargetArn":"DEAD_LETTER_QUEUE_ARN","maxReceiveCount":"10"}', }, QueueUrl: "SOURCE_QUEUE_URL", }; sqs.setQueueAttributes(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node sqs_deadletterqueue.js

Cet exemple de code se trouve ici sur GitHub.