Verwalten der Zeitbeschaffung für die Sichtbarkeit in Amazon SQS - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS 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 Zeitbeschaffung für die 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 nutzt das SDK für JavaScript zur Verwaltung der Zeitbescheinigung für die Sichtbarkeit mithilfe dieser Methode desSQSClient-Klasse:

Weitere Informationen zum Timeout für die Sichtbarkeit von Amazon SQS finden Sie unterZeitbeschränkung für die SichtbarkeitimAmazon Simple Queue Service-Entwicklerhandbuchaus.

Erforderliche Aufgaben

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

Wichtig

Diese Beispiele zeigen, wie Client-Serviceobjekte importiert/exportiert und mit ECMASCRIPT6 (ES6) befehligt werden.

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

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

Ändern der Zeitbeschaffung für die Sichtbarkeit

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamensqsClient.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das Amazon SQS SQS-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion :

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 };

Diesen Beispielcode finden Sie unterhier auf 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 undQUEUE_NAMEGibt den Namen der Warteschlange an.

// 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 { var visibilityParams = { QueueUrl: queueURL, ReceiptHandle: data.Messages[0].ReceiptHandle, VisibilityTimeout: 20, // 20 second timeout }; const results = await sqsClient.send( new ChangeMessageVisibilityCommand(params) ); 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 zum Ausführen des Beispiels Folgendes bei der Eingabeaufforderung ein.

node sqs_changingvisibility.js

Diesen Beispielcode finden Sie unterhier auf GitHubaus.