Wir haben das Kommende end-of-support für AWS SDK für JavaScript v2 angekündigt
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
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 zu bestimmen, 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 verwendet das SDK für JavaScript die Verwendung von Warteschlangen mit unbestätigten Briefen unter Verwendung dieser Methode der AWS.SQS
Client-Klasse:
Weitere Informationen zu Amazon SQS-Warteschlangen für unzustellbare Briefe finden Sie unter Using Amazon SQS Dead Letter Queues im Amazon Simple Queue Service Developer Guide.
Erforderliche Aufgaben
Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:
Installieren Sie Node.js. Weitere Informationen über die Installation von Node.js finden Sie auf der Node.js-Website
. Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zum Bereitstellen einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Laden der Anmeldeinformationen in Node.js aus der freigegebenen Anmeldeinformationsdatei.
Erstellen Sie eine Amazon SQS SQS-Warteschlange, die als Warteschlange für unzustellbare Nachrichten dient. Ein Beispiel für die Erstellung einer Warteschlange finden Sie unter Verwenden von Warteschlangen in Amazon SQS.
Konfigurieren von Quellwarteschlangen
Nachdem Sie eine Warteschlange für unzustellbare Nachrichten erstellt haben, müssen Sie die anderen Warteschlangen konfigurieren, damit diese 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 Empfangsversuche für einzelne Nachrichten fest, bevor sie an die Warteschlange für unzustellbare Nachrichten weitergeleitet werden.
Erstellen Sie ein Node.js-Modul mit dem Dateinamen sqs_deadletterqueue.js
. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um auf Amazon SQS zuzugreifen, erstellen Sie ein AWS.SQS
Serviceobjekt. Erstellen Sie ein JSON-Objekt, das die erforderlichen Parameter zum Aktualisieren von Warteschlangenattributen enthält, einschließlich des RedrivePolicy
-Parameters, der sowohl den ARN der Warteschlange für unzustellbare Nachrichten als auch den Wert von maxReceiveCount
angibt. Geben Sie auch die URL der Quellwarteschlange an, die Sie konfigurieren möchten. Rufen Sie die setQueueAttributes
-Methode auf.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { Attributes: { RedrivePolicy: '{"deadLetterTargetArn":"DEAD_LETTER_QUEUE_ARN","maxReceiveCount":"10"}', }, QueueUrl: "SOURCE_QUEUE_URL", }; sqs.setQueueAttributes(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.
node sqs_deadletterqueue.js
Diesen Beispielcode finden Sie hier auf GitHub.