Verwenden von Warteschlangen für unzustellbare Nachrichten in Amazon SQS - AWS SDK für JavaScript

Wir haben das Kommende end-of-support für AWS SDK für JavaScript v2 angekündigt. Wir empfehlen Ihnen, auf AWS SDK für JavaScript Version 3 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

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 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:

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.