Konfigurieren einer Amazon-SNS-Warteschlange für unzustellbare Nachrichten 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.

Konfigurieren einer Amazon-SNS-Warteschlange für unzustellbare Nachrichten für ein Abonnement

Eine Queue für unzustellbare Nachrichten ist eine Amazon-SQS-Queue, an die ein Amazon SNS Abonnement Nachrichten senden kann, die nicht erfolgreich an Abonnenten gesendet werden konnten. 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 Amazon SNS SNS-Warteschlangen für unzustellbare Briefe und Wiederholungsversuche bei der Nachrichtenzustellung Amazon SNS.

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

Anmerkung

Für ein FIFO-Thema können Sie eine Amazon-SQS-Warteschlange als Warteschlange für unzustellbare Nachrichten für das Amazon-SNS-Abonnement verwenden. FIFO-Themen-Abonnements 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 Amazon-SNS-Thema mit dem Namen MyTopic.

  2. Erstellen einer Amazon-SQS-QueuebenanntMyEndpointverwenden, um als Endpunkt für das Amazon SNS Abonnement zu verwenden.

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

  4. Erstellen Sie eine weitere Amazon–SQS-Warteschlange mit dem Namen MyDeadLetterQueue, die als Queue für das Amazon-SNS-Abonnement dienen soll.

  5. Um dem Amazon SNS-Prinzipal Zugriff auf die Amazon SQS-API-Aktion zu gewähren, legen Sie die folgende Queue-Richtlinie für MyDeadLetterQueue fest.

    JSON
    { "Version": "2012-10-17", "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 Amazon SNS SNS-Abonnement zu konfigurieren, verwenden Sie AWS Management Console

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

  1. Melden Sie sich bei der Amazon-SQS-Konsole an.

  2. Erstellen Sie eine Amazon-SQS-Warteschlange oder verwenden Sie eine vorhandene Queue und notieren Sie sich den ARN der Queue auf deren Details-Registerkarte, z. B.:

    arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
  3. Melden Sie sich bei der Amazon SNS-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. Erweitern Sie auf der Seite 1234a567-bc89-012d-3e45-6fg7h890123i bearbeiten den Abschnitt Redrive policy (dead-letter queue) Richtlinie für erneute Ausführung (Warteschlange für unzustellbare Nachrichten) und führen Sie dann die folgenden Schritte aus:

    1. Wählen Sie Aktiviert.

    2. Geben Sie den ARN einer Amazon SQS Queue an.

  7. Wählen Sie Änderungen speichern aus.

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

So konfigurieren Sie mithilfe eines SDK eine Warteschlange für unzustellbare Briefe für ein Amazon SNS SNS-Abonnement AWS

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

Um ein AWS SDK verwenden zu können, müssen Sie es mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter Die Dateien für die gemeinsame Konfiguration und die Anmeldeinformationen im AWS SDKs Referenzhandbuch zu Tools.

Das folgende Codebeispiel zeigt, wie Sie es verwendenSetSubscriptionAttributesRedrivePolicy.

Java
SDK für Java 1.x
Anmerkung

Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel- 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 Amazon SNS SNS-Abonnement zu konfigurieren, verwenden Sie 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 Amazon SNS SNS-Abonnement zu konfigurieren, verwenden Sie AWS CloudFormation

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

  1. Kopieren Sie den JSON-Code in eine Datei mit dem Namen MyDeadLetterQueue.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 Status CREATE_COMPLETE AWS CloudFormation angezeigt.