Utilizzo delle code DLQ in Amazon SQS - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

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

Utilizzo delle code DLQ in Amazon SQS

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come utilizzare una coda per ricevere e mantenere i messaggi da altre code che le code non sono in grado di elaborare.

Lo scenario

Una coda DLQ è una coda a cui altre code (origini) possono mirare per i messaggi che non possono essere elaborati correttamente. Puoi riservare e isolare questi messaggi nella coda DLQ per determinare perché l'elaborazione non è riuscita. Devi configurare singolarmente ogni coda di origine che invia messaggi a una coda DLQ. Code multiple possono mirare a una singola coda DLQ.

In questo esempio, viene utilizzato un modulo Node.js per instradare messaggi a una coda DLQ. Il modulo Node.js utilizza l'SDK per JavaScript utilizzare le code di lettere morte utilizzando questo metodo della classe AWS.SQS client:

Per ulteriori informazioni sulle code di lettere morte di Amazon SQS, consulta Using Amazon SQS Dead Letter Queues nella Amazon Simple Queue Service Developer Guide.

Attività prerequisite

Per configurare ed eseguire questo esempio, è necessario completare queste attività:

Configurazione delle code di origine

Una volta creata una coda che si comporta come coda DLQ, è necessario configurare le altre code in modo che instradino i messaggi non elaborati alla coda DLQ. Per eseguire questa operazione, specificare una policy di reindirizzamento che identifichi la coda da utilizzare come coda DLQ e il numero massimo di singoli messaggi da ricevere prima che siano instradati alla coda DLQ.

Crea un modulo Node.js con il nome del file sqs_deadletterqueue.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon SQS, crea un oggetto di AWS.SQS servizio. Crea un oggetto JSON contenente i parametri necessari per aggiornare gli attributi della coda, incluso il parametro RedrivePolicy che specifica sia l'Amazon Resource Name (ARN) della coda DLQ sia il valore di maxReceiveCount. Specifica inoltre l'URL della coda di origine che desideri configurare. Chiama il metodo 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); } });

Digita la seguente riga di comando per eseguire l'esempio.

node sqs_deadletterqueue.js

Questo codice di esempio può essere trovato qui. GitHub