La versione AWS SDK per JavaScript v2 ha raggiunto la fine del supporto. Ti consigliamo di migrare alla v3.AWS SDK per JavaScript Per ulteriori dettagli e informazioni su come effettuare la migrazione, consulta questo annuncio.
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à.
Invio e ricezione di messaggi in Amazon SQS
Questo esempio di Node.js codice mostra:
Come inviare messaggi in una coda.
Come ricevere messaggi in una coda.
Come eliminare messaggi in una coda.
Lo scenario
In questo esempio, una serie di Node.js moduli viene utilizzata per inviare e ricevere messaggi. I Node.js moduli utilizzano l'SDK JavaScript per inviare e ricevere messaggi utilizzando questi metodi della classe AWS.SQS client:
Per ulteriori informazioni sui messaggi Amazon SQS, consulta Invio di un messaggio a una coda Amazon SQS e Ricezione ed eliminazione di un messaggio da una coda Amazon SQS 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 Node.js, consulta il Node.js sito Web
. 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.
Creare una coda Amazon SQS. Per un esempio di creazione di una coda, consulta Utilizzo delle code in Amazon SQS.
Invio di un messaggio a una coda
Crea un Node.js modulo con il nome del filesqs_sendmessage.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon SQS, crea un oggetto AWS.SQS di servizio. Crea un oggetto JSON contenente i parametri necessari per il tuo messaggio, incluso l'URL della coda a cui inviare il messaggio. In questo esempio, il messaggio fornisce informazioni su un libro presente in una classifica di romanzi best seller, comprendente il titolo, l'autore e il numero di settimane in classifica.
Chiama il metodo sendMessage. Il callback restituisce l'ID univoco del messaggio.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { // Remove DelaySeconds parameter and value for FIFO queues DelaySeconds: 10, MessageAttributes: { Title: { DataType: "String", StringValue: "The Whistler", }, Author: { DataType: "String", StringValue: "John Grisham", }, WeeksOn: { DataType: "Number", StringValue: "6", }, }, MessageBody: "Information about current NY Times fiction bestseller for week of 12/11/2016.", // MessageDeduplicationId: "TheWhistler", // Required for FIFO queues // MessageGroupId: "Group1", // Required for FIFO queues QueueUrl: "SQS_QUEUE_URL", }; sqs.sendMessage(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.MessageId); } });
Digita la seguente riga di comando per eseguire l'esempio.
node sqs_sendmessage.js
Questo codice di esempio può essere trovato qui. GitHub
Ricezione ed eliminazione di messaggi da una coda
Crea un Node.js modulo con il nome del filesqs_receivemessage.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon SQS, crea un oggetto AWS.SQS di servizio. Crea un oggetto JSON contenente i parametri necessari per il tuo messaggio, incluso l'URL della coda da cui ricevere il messaggio. In questo esempio, i parametri specificano la ricezione di tutti gli attributi del messaggio, nonché la ricezione di non più di 10 messaggi.
Chiama il metodo receiveMessage. Il callback restituisce una matrice di oggetti Message da cui è possibile recuperare il valore ReceiptHandle per ogni messaggio utilizzato in seguito per eliminare il messaggio. Crea un altro oggetto JSON contenente i parametri necessari per eliminare il messaggio, ovvero l'URL della coda e il valore ReceiptHandle. Chiama il metodo deleteMessage per eliminare il messaggio ricevuto.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var queueURL = "SQS_QUEUE_URL"; var params = { AttributeNames: ["SentTimestamp"], MaxNumberOfMessages: 10, MessageAttributeNames: ["All"], QueueUrl: queueURL, VisibilityTimeout: 20, WaitTimeSeconds: 0, }; sqs.receiveMessage(params, function (err, data) { if (err) { console.log("Receive Error", err); } else if (data.Messages) { var deleteParams = { QueueUrl: queueURL, ReceiptHandle: data.Messages[0].ReceiptHandle, }; sqs.deleteMessage(deleteParams, function (err, data) { if (err) { console.log("Delete Error", err); } else { console.log("Message Deleted", data); } }); } });
Digita la seguente riga di comando per eseguire l'esempio.
node sqs_receivemessage.js
Questo codice di esempio può essere trovato qui. GitHub