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à.
Gestione del timeout visibilità in Amazon SQS
Questo esempio di codice di Node.js illustra:
Come specificare l'intervallo di tempo durante il quale i messaggi ricevuti da una coda non sono visibili.
Lo scenario
In questo esempio, viene utilizzato un modulo Node.js per gestire il timeout visibilità. Il modulo Node.js utilizza l'SDK per JavaScript gestire il timeout di visibilità utilizzando questo metodo della classe AWS.SQS
client:
Per ulteriori informazioni sul timeout di visibilità di Amazon SQS, consulta Visibility Timeout 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.
Creare una coda Amazon SQS. Per un esempio di creazione di una coda, consulta Utilizzo delle code in Amazon SQS.
Invio di un messaggio alla coda. Per un esempio di invio di un messaggio a una coda, consulta Invio e ricezione di messaggi in Amazon SQS.
Modifica del timeout visibilità
Crea un modulo Node.js con il nome del file sqs_changingvisibility.js
. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon Simple Queue Service, crea un oggetto AWS.SQS
servizio. Ricevere il messaggio dalla coda.
Alla ricezione del messaggio dalla coda, crea un oggetto JSON contenente i parametri necessari per impostare il timeout, inclusi l'URL della coda che contiene il messaggio, il valore ReceiptHandle
restituito quando il messaggio è stato ricevuto e il nuovo timeout in secondi. Chiama il metodo changeMessageVisibility
.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region to us-west-2 AWS.config.update({ region: "us-west-2" }); // Create the SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var queueURL = "https://sqs.REGION.amazonaws.com/ACCOUNT-ID/QUEUE-NAME"; var params = { AttributeNames: ["SentTimestamp"], MaxNumberOfMessages: 1, MessageAttributeNames: ["All"], QueueUrl: queueURL, }; sqs.receiveMessage(params, function (err, data) { if (err) { console.log("Receive Error", err); } else { // Make sure we have a message if (data.Messages != null) { var visibilityParams = { QueueUrl: queueURL, ReceiptHandle: data.Messages[0].ReceiptHandle, VisibilityTimeout: 20, // 20 second timeout }; sqs.changeMessageVisibility(visibilityParams, function (err, data) { if (err) { console.log("Delete Error", err); } else { console.log("Timeout Changed", data); } }); } else { console.log("No messages to change"); } } });
Digita la seguente riga di comando per eseguire l'esempio.
node sqs_changingvisibility.js
Questo codice di esempio può essere trovato qui