Abbiamo annunciato
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
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à:
Installa Node.js. Per ulteriori informazioni sull'installazione di Node.js, consulta il sito Web Node.js
. Creazione di un file di configurazione condiviso con le credenziali utente. Per ulteriori informazioni sulla fornitura di un file delle credenziali condiviso, consulta Caricamento delle credenziali su Node.js dal file delle credenziali condiviso.
Crea una coda Amazon SQS che funga da coda di lettere morte. Per un esempio di creazione di una coda, consulta Utilizzo delle code in Amazon SQS.
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