Verwenden von Warteschlangen für unzustellbare Nachrichten 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.

Verwenden von Warteschlangen für unzustellbare Nachrichten in Amazon SQS

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • Verwenden einer Warteschlange, um Nachrichten von anderen Warteschlangen zu empfangen und zu halten, die die Warteschlangen nicht verarbeiten können

Das Szenario

Bei einer Warteschlange für unzustellbare Nachrichten handelt es sich um eine Warteschlange, an die andere (Quell-)Warteschlangen Nachrichten senden können, die nicht erfolgreich verarbeitet werden konnten. Sie können diese Nachrichten in der Warteschlange für unzustellbare Nachrichten sammeln und isolieren, um festzustellen, warum die Verarbeitung fehlgeschlagen ist. Sie müssen jede Quellwarteschlange, die Nachrichten an eine Warteschlange für unzustellbare Nachrichten sendet, individuell konfigurieren. Eine Warteschlange für unzustellbare Nachrichten kann von mehreren Warteschlangen verwendet werden.

In diesem Beispiel wird ein Node.js-Modul verwendet, um Nachrichten an eine Warteschlange für unzustellbare Nachrichten weiterzuleiten. Das Modul Node.js nutzt das SDK für JavaScript zur Verwendung von Warteschlangen für unzustellbare Nachrichten mithilfe dieser MethodeSQSClient-Klasse:

Weitere Informationen zu Warteschlangen für unzustellbare Nachrichten von Amazon SQS finden Sie unterVerwenden von Amazon SQS SQS-Warteschlangen für unzustellbare NachrichtenimAmazon 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.

Konfigurieren von Quellwarteschlangen

Nachdem Sie eine Warteschlange für unzustellbare Nachrichten erstellt haben, müssen Sie die anderen Warteschlangen konfigurieren, die unverarbeiteten Nachrichten an die Warteschlange für unzustellbare Nachrichten weiterleiten. Geben Sie hierfür eine Redrive-Richtlinie an, die die als Warteschlange für unzustellbare Nachrichten zu verwendende Warteschlange identifiziert und legen Sie die maximale Anzahl der Empfangsprozesse für einzelne Nachrichten fest, bevor sie an die Warteschlange für unzustellbare Nachrichten weitergeleitet werden.

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_deadletterqueue.js. Stellen Sie sicher, dass Sie das SDK wie zuvor dargestellt konfigurieren, einschließlich des Herunterladens der erforderlichen Clients und Pakete. Erstellen Sie ein JSON-Objekt, das die erforderlichen Parameter zum Aktualisieren von Warteschlangenattributen enthält, einschließlich derRedrivePolicy-Parameter, der sowohl den ARN der Warteschlange für unzustellbare Nachrichten als auch den Wert von angibtmaxReceiveCountaus. Geben Sie auch die URL der Quellwarteschlange an, die Sie konfigurieren möchten. Rufen Sie die SetQueueAttributesCommand-Methode auf.

Anmerkung

ErsetzenSQS_QUEUE_URLmit der URL der SQS-Warteschlange undDEAD_LETTER_QUEUE_ARNMit dem ARN der Warteschlange für unzustellbare Nachrichten.

// Import required AWS SDK clients and commands for Node.js import { SetQueueAttributesCommand } from "@aws-sdk/client-sqs"; import { sqsClient } from "./libs/sqsClient.js"; // Set the parameters var params = { Attributes: { RedrivePolicy: '{"deadLetterTargetArn":"DEAD_LETTER_QUEUE_ARN",' + '"maxReceiveCount":"10"}', //DEAD_LETTER_QUEUE_ARN }, QueueUrl: "SQS_QUEUE_URL", //SQS_QUEUE_URL }; const run = async () => { try { const data = await sqsClient.send(new SetQueueAttributesCommand(params)); console.log("Success", data); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Geben Sie zum Ausführen des Beispiels Folgendes bei der Eingabeaufforderung ein.

node sqs_deadletterqueue.js // If you prefer JavaScript, enter 'sqs_deadletterqueue.js'

Diesen Beispielcode finden Sie unterhier auf GitHubaus.