Verwalten der Zeitbeschränkung der Sichtbarkeit in Amazon SQS - AWS SDK for JavaScript

Hilf uns, das zu verbessernAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation, indem Sie Feedback mithilfe derFeedbackverlinken, oder erstellen Sie ein Issue oder Pull Request aufGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-APIbeschreibt ausführlich alle API-Operationen für denAWS SDK for JavaScriptVersion 3 (V3).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten der Zeitbeschränkung der Sichtbarkeit in Amazon SQS

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • Angeben des Zeitintervalls, in dem Nachrichten, die von einer Warteschlange erhalten wurden, nicht sichtbar sind

das Szenario

In diesem Beispiel wird ein Node.js-Modul zum Verwalten der Zeitbeschränkung für die Sichtbarkeit verwendet. Das Modul Node.js verwendet das SDK für JavaScript zum Verwalten von Zeitbeschränkung für die Sichtbarkeit mithilfe dieser MethodeSQSKunden-Klasse:

Weitere Informationen zur Amazon SQS-SichtbarkeitZeitbeschränkung für die SichtbarkeitimAmazon Simple Queue Service-Entwicklerhandbuchaus.

Erforderliche

Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:

Wichtig

Diese Beispiele zeigen, wie Client-Service-Objekte und Befehle mithilfe von ECMAscript6 (ES6) importiert/exportiert werden.

  • Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.js.aus.

  • Wenn Sie die CommonJS-Syntax verwenden möchten, finden Sie.JavaScript ES6/CommonJS-Syntaxaus.

Ändern der Zeitbeschränkung für die Sichtbarkeit

Erstellen eineslibsund erstellen Sie ein Node.js -Modul mit dem DateinamensqsClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das Amazon SQS SQS-Client-Objekt erstellt wird. ErsetzenREGIONmitAWSRegion :

import { SQSClient } from "@aws-sdk/client-sqs"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SQS service object. const sqsClient = new SQSClient({ region: REGION }); export { sqsClient };

Den Beispielcode finden Siehier GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sqs_changingvisibility.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Empfangen einer Mitteilung aus der Warteschlange

Nachdem Sie die Nachricht aus der Warteschlange erhalten haben, erstellen Sie ein JSON-Objekt, das die erforderlichen Parameter für das Einrichten der Zeitbeschränkung enthält. Dazu gehören die URL der Warteschlange mit der Nachricht, der bei Erhalt der Nachricht zurückgegebene ReceiptHandle-Wert sowie die neue Zeitbeschränkung in Sekunden. Rufen Sie die ChangeMessageVisibilityCommand-Methode auf.

Anmerkung

Ersetzen undACCOUNT_IDmit der ID des Kontos undWARTESCHLANGENNAMEmit dem Namen der Warteschlange.

// Import required AWS SDK clients and commands for Node.js import { ReceiveMessageCommand, ChangeMessageVisibilityCommand, } from "@aws-sdk/client-sqs"; import { sqsClient } from "./libs/sqsClient.js"; // Set the parameters const queueURL = "https://sqs.REGION.amazonaws.com/ACCOUNT-ID/QUEUE-NAME"; // REGION, ACCOUNT_ID, QUEUE_NAME const params = { AttributeNames: ["SentTimestamp"], MaxNumberOfMessages: 1, MessageAttributeNames: ["All"], QueueUrl: queueURL, }; const run = async () => { try { const data = await sqsClient.send(new ReceiveMessageCommand(params)); if (data.Messages != null) { try { const visibilityParams = { QueueUrl: queueURL, ReceiptHandle: data.Messages[0].ReceiptHandle, VisibilityTimeout: 20, // 20 second timeout }; const results = await sqsClient.send( new ChangeMessageVisibilityCommand(visibilityParams) ); console.log("Timeout Changed", results); } catch (err) { console.log("Delete Error", err); } } else { console.log("No messages to change"); } return data; // For unit tests. } catch (err) { console.log("Receive Error", err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes ein.

node sqs_changingvisibility.js

Den Beispielcode finden Siehier GitHubaus.