Konfiguration einer Amazon-Warteschlange für SNS unzustellbare Briefe für ein Abonnement - Amazon Simple Notification Service

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.

Konfiguration einer Amazon-Warteschlange für SNS unzustellbare Briefe für ein Abonnement

Eine Warteschlange für unzustellbare Briefe ist eine SQS Amazon-Warteschlange, die ein SNS Amazon-Abonnement für Nachrichten verwenden kann, die nicht erfolgreich an Abonnenten zugestellt werden können. Nachrichten, die aufgrund von Clientfehlern oder Serverfehlern nicht zugestellt werden können, werden in der Queue für unzustellbare Nachrichten zur weiteren Analyse oder erneuten Verarbeitung gespeichert. Weitere Informationen erhalten Sie unter Warteschlangen für SNS unzustellbare Briefe bei Amazon und Wiederholte Versuche mit der SNS Amazon-Nachrichtenzustellung.

Auf dieser Seite wird gezeigt, wie Sie das AWS Management Console, ein, das und verwenden können AWS SDK, AWS CloudFormation um eine Warteschlange für unzustellbare Briefe für ein SNS Amazon-Abonnement zu konfigurieren. AWS CLI

Anmerkung

Für ein FIFOThema können Sie eine SQS Amazon-Warteschlange als Warteschlange für eingehende Briefe für das SNS Amazon-Abonnement verwenden. FIFOThemenabonnements verwenden FIFO Warteschlangen, und Standardthemenabonnements verwenden Standardwarteschlangen.

Voraussetzungen

Führen Sie die folgenden Voraussetzungen aus, bevor Sie eine Queue für unzustellbare Nachrichten konfigurieren:

  1. Erstellen Sie ein SNS Amazon-Thema mit dem NamenMyTopic.

  2. Erstellen Sie eine SQS Amazon-Warteschlange mit dem NamenMyEndpoint, die als Endpunkt für das SNS Amazon-Abonnement verwendet werden soll.

  3. (Überspringen für AWS CloudFormation) Abonnieren Sie die Warteschlange für das Thema.

  4. Erstellen Sie eine weitere SQS Amazon-Warteschlange mit dem NamenMyDeadLetterQueue, die als Warteschlange für eingehende Briefe für das SNS Amazon-Abonnement verwendet werden soll.

  5. Um Amazon SNS Principal Zugriff auf die SQS API Amazon-Aktion zu gewähren, legen Sie die folgende Warteschlangenrichtlinie für festMyDeadLetterQueue.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-2:123456789012:MyTopic" } } }] }

Um eine Warteschlange für unzustellbare Briefe für ein SNS Amazon-Abonnement zu konfigurieren, verwenden Sie den AWS Management Console

Bevor Sie mit diesem Tutorial beginnen, müssen Sie die Voraussetzungen erfüllen.

  1. Melden Sie sich bei der SQSAmazon-Konsole an.

  2. Erstellen Sie eine SQS Amazon-Warteschlange oder verwenden Sie eine bestehende Warteschlange und notieren Sie sich die Warteschlange auf der Registerkarte Details der Warteschlange, zum Beispiel: ARN

    arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
  3. Melden Sie sich bei der SNSAmazon-Konsole an.

  4. Wählen Sie im Navigationsbereich Subscriptions (Abonnements) aus.

  5. Wählen Sie auf der Seite Subscriptions (Abonnements) ein vorhandenes Abonnement und dann Edit (Bearbeiten) aus.

  6. Bei der Bearbeitung 1234a567-bc89-012d-3e45-6fg7h890123iErweitern Sie auf der Seite den Abschnitt Redrive-Richtlinie (Warteschlange für unveröffentlichte Nachrichten), und gehen Sie dann wie folgt vor:

    1. Wählen Sie Aktiviert.

    2. Geben Sie die ARN einer SQS Amazon-Warteschlange an.

  7. Wählen Sie Änderungen speichern.

    Ihr Abonnement ist für die Verwendung einer Queue für unzustellbare Nachrichten konfiguriert.

Um eine Warteschlange für unzustellbare Briefe für ein SNS Amazon-Abonnement zu konfigurieren, verwenden Sie eine AWS SDK

Bevor Sie dieses Beispiel ausführen, müssen Sie sicherstellen, dass Sie dieVoraussetzungenerfüllen.

Um eine zu verwenden AWS SDK, müssen Sie sie mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter Die Dateien für die gemeinsame Konfiguration und die Anmeldeinformationen im AWS SDKsReferenzhandbuch zu Tools.

Das folgende Codebeispiel zeigt die VerwendungSetSubscriptionAttributesRedrivePolicy.

Java
SDKfür Java 1.x
Anmerkung

Es gibt noch mehr dazu. GitHub Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

// Specify the ARN of the Amazon SNS subscription. String subscriptionArn = "arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i"; // Specify the ARN of the Amazon SQS queue to use as a dead-letter queue. String redrivePolicy = "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"; // Set the specified Amazon SQS queue as a dead-letter queue // of the specified Amazon SNS subscription by setting the RedrivePolicy attribute. SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest() .withSubscriptionArn(subscriptionArn) .withAttributeName("RedrivePolicy") .withAttributeValue(redrivePolicy); sns.setSubscriptionAttributes(request);

Um eine Warteschlange für unzustellbare Briefe für ein SNS Amazon-Abonnement zu konfigurieren, verwenden Sie den AWS CLI

Bevor Sie mit diesem Tutorial beginnen, müssen Sie die Voraussetzungen erfüllen.

  1. Installieren und Konfigurieren der AWS CLI. Weitere Informationen finden Sie im AWS Command Line Interface -Benutzerhandbuch.

  2. Verwenden Sie den folgenden -Befehl.

    aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i --attribute-name RedrivePolicy --attribute-value "{\"deadLetterTargetArn\": \"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"

Um eine Warteschlange für unzustellbare Briefe für ein SNS Amazon-Abonnement zu konfigurieren, verwenden Sie AWS CloudFormation

Bevor Sie mit diesem Tutorial beginnen, müssen Sie die Voraussetzungen erfüllen.

  1. Kopieren Sie den folgenden JSON Code in eine Datei mit dem NamenMyDeadLetterQueue.json.

    { "Resources": { "mySubscription": { "Type" : "AWS::SNS::Subscription", "Properties" : { "Protocol": "sqs", "Endpoint": "arn:aws:sqs:us-east-2:123456789012:MyEndpoint", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "RedrivePolicy": { "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue" } } } } }
  2. Melden Sie sich an der AWS CloudFormation -Konsole an.

  3. Klicken Sie auf der Seite Select Template (Vorlage auswählen) auf die Option Upload a template to Amazon S3 (Eine Vorlage zu Amazon S3 hochladen), wählen Sie dann Ihre MyDeadLetterQueue.json-Datei und anschließend Next (Weiter) aus.

  4. Geben Sie auf der Seite Specify Details (Details angeben) MyDeadLetterQueue als Stack Name (Stack-Name) ein und wählen Sie Next (Weiter) aus.

  5. Wählen Sie auf der Seite Optionen Weiter aus.

  6. Klicken Sie auf der Seite Review auf Create.

    AWS CloudFormation beginnt mit der Erstellung des MyDeadLetterQueue Stacks und zeigt den Status CREATE_IN_ PROGRESS an. Wenn der Vorgang abgeschlossen ist, wird der AWS CloudFormation Status CREATE_ COMPLETE angezeigt.