

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.

# Amazon SNS SNS-Warteschlangen für unzustellbare Briefe
<a name="sns-dead-letter-queues"></a>

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 [Konfigurieren einer Amazon-SNS-Warteschlange für unzustellbare Nachrichten für ein Abonnement](sns-configure-dead-letter-queue.md) und [Wiederholungsversuche bei der Nachrichtenzustellung Amazon SNS](sns-message-delivery-retries.md).

**Anmerkung**  
Das Amazon SNS SNS-Abonnement und die Amazon SQS SQS-Warteschlange müssen sich unter demselben AWS Konto und derselben Region befinden.
Für ein [FIFO-Thema](sns-fifo-topics.md) können Sie eine Amazon-SQS-Warteschlange als Warteschlange für unzustellbare Nachrichten für das Amazon-SNS-Abonnement verwenden. FIFO-Themenabonnements verwenden FIFO-Warteschlangen und Standardthemenabonnements verwenden Standardwarteschlangen.
Um eine verschlüsselte Amazon SQS SQS-Warteschlange als Warteschlange für unzustellbare Briefe zu verwenden, müssen Sie ein benutzerdefiniertes KMS mit einer Schlüsselrichtlinie verwenden, die dem Amazon SNS SNS-Service Principal Zugriff auf API-Aktionen gewährt. AWS KMS Weitere Informationen finden Sie unter [Sicherung von Amazon SNS SNS-Daten mit serverseitiger Verschlüsselung](sns-server-side-encryption.md) in dieser Anleitung und [Schutz von Amazon SQS Daten mithilfe serverseitiger Verschlüsselung (SSE) und AWS KMS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) im *Amazon Simple Queue Service-Entwicklerhandbuch*.

## Warum schlagen Nachrichtenzustellungen fehl?
<a name="why-do-message-deliveries-fail"></a>

Im Allgemeinen schlägt die Nachrichtenzustellung fehl, wenn Amazon SNS aufgrund eines *clientseitigen* oder *serverseitigen Fehlers* nicht auf einen abonnierten Endpunkt zugegriffen werden kann. Wenn Amazon SNS einen clientseitigen Fehler erhält oder weiterhin einen serverseitigen Fehler für eine Nachricht erhält, die über die Anzahl der Wiederholungsversuche hinausgeht, die in der entsprechenden Wiederholungsrichtlinie angegeben ist, verwirft Amazon SNS die Nachricht — es sei denn, es ist eine Queue für unzustellbare Nachrichten an das Abonnement angehängt. Fehlgeschlagene Zustellungen ändern den Status Ihrer Abonnements nicht. Weitere Informationen finden Sie unter [Wiederholungsversuche bei der Nachrichtenzustellung Amazon SNS](sns-message-delivery-retries.md).

### Client-seitige Fehler
<a name="client-side-errors"></a>

Client-seitige Fehler können auftreten, wenn Amazon SNS über veraltete Abonnementmetadaten verfügt. Diese Fehler treten im Allgemeinen auf, wenn ein Besitzer den Endpunkt löscht (z. B. eine Lambda-Funktion, mit der ein Thema abonniert wird) oder wenn ein Besitzer die dem abonnierten Endpunkt zugewiesene Richtlinie so ändert, dass Amazon SNS keine Nachrichten an den Endpunkt zugestellt werden können. Amazon SNS versucht nicht, eine durch einen clientseitigen Fehler verursachte fehlerhafte Nachrichtenzustellung zu wiederholen. Amazon SNS versucht keine erneute Nachrichtenzustellung, die aufgrund eines clientseitigen Fehlers fehlschlägt.

### Serverseitige Fehler
<a name="server-side-errors"></a>

Serverseitige Fehler können auftreten, wenn das für den abonnierten Endpunkt verantwortliche System nicht verfügbar ist oder eine Ausnahme zurückgibt, die angibt, dass eine gültige Anfrage nicht von Amazon SNS verarbeitet werden kann. Bei serverseitigen Fehlern versucht Amazon SNS die fehlgeschlagenen Zustellungen mithilfe einer linearen oder exponentiellen Backoff-Funktion zu wiederholen. Bei serverseitigen Fehlern, die durch AWS verwaltete Endgeräte verursacht werden, die von Amazon SQS oder Amazon SQS unterstützt werden AWS Lambda, versucht Amazon SNS innerhalb von 23 Tagen bis zu 100.015 Mal, die Zustellung erneut.

Von Kunden verwaltete Endpunkte (wie HTTP, SMTP, SMS oder mobile Pushnachrichten) können ebenfalls serverseitige Fehler verursachen. Amazon SNS versucht auch die Zustellung an diese Endgerätetypen erneut. Obwohl HTTP-Endpunkte von Kunden definierte Wiederholungsrichtlinien unterstützen, legt Amazon SNS eine interne Zustellungsrichtlinie für SMTP-, SMS- und mobile Push-Endpunkte auf 50-mal innerhalb von 6 Stunden fest.

## Funktionsweise von Queues für unzustellbare Nachrichten
<a name="how-do-dead-letter-queues-work"></a>

Eine Queue für unzustellbare Nachrichten wird einem Amazon SNS-Abonnement (nicht einem Thema) zugewiesen, da Nachrichtenzustellungen auf Abonnementebene stattfinden. Auf diese Weise können Sie den ursprünglichen Zielendpunkt für jede Nachricht leichter identifizieren.

Bei einer Queue für unzustellbare Nachrichten, die einem Amazon SNS-Abonnement zugeordnet ist, handelt es sich um eine gewöhnliche Amazon SQS-Queue. Weitere Informationen zum Aufbewahrungszeitraum für Nachrichten finden Sie unter [Kontingente im Zusammenhang mit Nachrichten](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-quotas.html#quotas-messages) in der *Amazon Simple Queue Service-Entwicklerrichtlinie*. Sie können den Aufbewahrungszeitraum für Nachrichten mithilfe der `[SetQueueAttributes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)` Amazon SQS-API-Aktion anpassen. Um Ihre Anwendungen widerstandsfähiger zu machen, empfehlen wir Ihnen, die maximale Aufbewahrungsfrist für Queues für unzustellbare Nachrichten auf 14 Tage festzulegen.

## Wie werden Nachrichten in eine Queue für unzustellbare Nachrichten verschoben?
<a name="how-messages-moved-into-dead-letter-queue"></a>

Ihre Nachrichten werden mithilfe einer *Richtlinie für erneute Ausführung* in eine Queue für unzustellbare Nachrichten verschoben. Eine Richtlinie für erneute Ausführung ist ein JSON-Objekt, das auf den ARN der Queue für unzustellbare Nachrichten verweist. Das `deadLetterTargetArn`-Attribut gibt den ARN an. Der ARN muss auf eine Amazon SQS SQS-Warteschlange verweisen, die sich in derselben AWS-Konto Region wie Ihr Amazon SNS SNS-Abonnement befindet. Weitere Informationen finden Sie unter [Konfigurieren einer Amazon-SNS-Warteschlange für unzustellbare Nachrichten für ein Abonnement](sns-configure-dead-letter-queue.md). 

Das folgende JSON-Objekt ist eine Beispielrichtlinie für eine Richtlinie für erneute Ausführung, die einem SNS-Abonnement zugewiesen ist.

```
{
  "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue"
}
```

## Wie kann ich Nachrichten aus einer Queue für unzustellbare Nachrichten verschieben?
<a name="how-to-move-messages-out-of-dead-letter-queue"></a>

Sie können Nachrichten auf zwei Arten aus einer Queue für unzustellbare Nachrichten verschieben:
+ **Vermeiden Sie Schreiben von Amazon SQS-Verbraucherlogik**: legen Sie Ihre Queue für unzustellbare Nachrichten als Ereignisquelle für die Lambda-Funktion fest, um Ihre Queue für unzustellbare Nachrichten zu leeren.
+ **Amazon SQS SQS-Verbraucherlogik schreiben** — Verwenden Sie die Amazon SQS SQS-API, das AWS SDK oder schreiben Sie eine benutzerdefinierte Verbraucherlogik für das Abfragen, Verarbeiten und Löschen der Nachrichten in der Warteschlange für AWS CLI unzustellbare Briefe.

## Wie kann ich Queues für unzustellbare Nachrichten überwachen und protokollieren?
<a name="how-to-monitor-log-dead-letter-queues"></a>

Sie können CloudWatch Amazon-Metriken verwenden, um Warteschlangen für unzustellbare Briefe im Zusammenhang mit Ihren Amazon SNS-Abonnements zu überwachen. Alle Amazon SQS SQS-Warteschlangen geben in Intervallen von einer CloudWatch Minute Metriken aus. Weitere Informationen finden Sie unter [Verfügbare CloudWatch Metriken für Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-available-cloudwatch-metrics.html) im *Amazon Simple Queue Service Developer Guide*. Alle Amazon SNS SNS-Abonnements mit Warteschlangen für unzustellbare Briefe senden ebenfalls Metriken aus. CloudWatch Weitere Informationen finden Sie unter [Überwachung von Amazon SNS SNS-Themen mit CloudWatch](sns-monitoring-using-cloudwatch.md).

Um über Aktivitäten in Ihren Warteschlangen für unzustellbare Briefe informiert zu werden, können Sie Metriken und Alarme verwenden. CloudWatch Das Einrichten eines Alarms für die `NumberOfMessagesSent` Metrik ist nicht geeignet, da diese Metrik keine Nachrichten erfasst, die aufgrund fehlgeschlagener Verarbeitungsversuche an eine DLQ gesendet wurden. Verwenden Sie stattdessen die `ApproximateNumberOfMessagesVisible` Metrik, die alle Nachrichten erfasst, die derzeit in der DLQ verfügbar sind, einschließlich der Nachrichten, die aufgrund von Verarbeitungsfehlern verschoben wurden.

**Beispiel für eine CloudWatch Alarmeinrichtung**

1. Erstellen Sie einen [CloudWatchAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html) für die `ApproximateNumberOfMessagesVisible` Metrik.

1. Setzen Sie den Alarmschwellenwert auf **1** (oder einen anderen geeigneten Wert, der Ihren Erwartungen und dem DLQ-Verkehr entspricht).

1. Geben Sie ein Amazon SNS **SNS-Thema** an, um benachrichtigt zu werden, wenn der Alarm ausgelöst wird. Dieses Amazon-SNS-Thema kann Ihre Alarmbenachrichtigung an jeden Endpunkttyp (z. B. E-Mail-Adresse, Telefonnummer oder mobile Pager-App) zustellen.

Mithilfe von CloudWatch Protokollen können Sie die Ausnahmen untersuchen, die dazu führen, dass Amazon SNS SNS-Lieferungen fehlschlagen und Nachrichten an Warteschlangen für unzustellbare Nachrichten gesendet werden. Amazon SNS kann sowohl erfolgreiche als auch fehlgeschlagene Lieferungen protokollieren. CloudWatch Weitere Informationen finden Sie unter [Attribute der mobilen Amazon SNS SNS-App](sns-msg-status.md).

# Konfigurieren einer Amazon-SNS-Warteschlange für unzustellbare Nachrichten für ein Abonnement
<a name="sns-configure-dead-letter-queue"></a>

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](sns-dead-letter-queues.md) und [Wiederholungsversuche bei der Nachrichtenzustellung Amazon SNS](sns-message-delivery-retries.md).

Diese Seite zeigt, wie Sie das AWS-Managementkonsole, ein AWS SDK, das und verwenden können, um eine Warteschlange für CloudFormation unzustellbare Briefe für ein Amazon SNS SNS-Abonnement zu konfigurieren. AWS CLI

**Anmerkung**  
Für ein [FIFO-Thema](sns-fifo-topics.md) 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
<a name="dead-letter-queue-prerequisites"></a>

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

1. [Erstellen Sie ein Amazon-SNS-Thema](sns-create-topic.md) mit dem Namen `MyTopic`.

1. [Erstellen einer Amazon-SQS-Queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html)benannt`MyEndpoint`verwenden, um als Endpunkt für das Amazon SNS Abonnement zu verwenden.

1. (Überspringen für CloudFormation) [Abonnieren Sie die Warteschlange für das Thema](sns-sqs-as-subscriber.md).

1. [Erstellen Sie eine weitere Amazon–SQS-Warteschlange](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) mit dem Namen `MyDeadLetterQueue`, die als Queue für das Amazon-SNS-Abonnement dienen soll.

1. 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 den AWS-Managementkonsole
<a name="configure-dead-letter-queue-aws-console"></a>

Bevor Sie mit diesem Tutorial beginnen, müssen Sie die [Voraussetzungen](#dead-letter-queue-prerequisites) erfüllen.

1. Melden Sie sich bei der [Amazon-SQS-Konsole](https://console.aws.amazon.com/sqs/) an.

1. [Erstellen Sie eine Amazon-SQS-Warteschlange](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) 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
   ```

1. Melden Sie sich bei der [Amazon SNS-Konsole](https://console.aws.amazon.com/sns/home) an.

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

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

1. 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**.

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

1. 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
<a name="configure-dead-letter-queue-aws-sdk"></a>

Bevor Sie dieses Beispiel ausführen, müssen Sie sicherstellen, dass Sie die[Voraussetzungen](#dead-letter-queue-prerequisites)erfü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](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) im *AWS SDKs Referenzhandbuch zu Tools*.

Das folgende Codebeispiel zeigt die Verwendung`SetSubscriptionAttributesRedrivePolicy`.

------
#### [ Java ]

**SDK für Java 1.x**  
 Es gibt noch mehr dazu GitHub. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/java/example_code/sns#code-examples) 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 den AWS CLI
<a name="configure-dead-letter-queue-aws-cli"></a>

Bevor Sie mit diesem Tutorial beginnen, müssen Sie die [Voraussetzungen](#dead-letter-queue-prerequisites) erfüllen.

1. Installieren und Konfigurieren der AWS CLI. Weitere Informationen finden Sie im [https://docs.aws.amazon.com/cli/latest/userguide/](https://docs.aws.amazon.com/cli/latest/userguide/).

1. 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 CloudFormation
<a name="configure-dead-letter-queue-aws-cloudformation"></a>

Bevor Sie mit diesem Tutorial beginnen, müssen Sie die [Voraussetzungen](#dead-letter-queue-prerequisites) 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"
           }
         }
       }
     }
   }
   ```

1. Melden Sie sich bei der [CloudFormation -Konsole](https://console.aws.amazon.com/cloudformation/) an.

1. 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. 

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

1. Wählen Sie auf der Seite **Optionen** **Weiter** aus.

1. Klicken Sie auf der Seite **Review** auf **Create**.

   CloudFormation beginnt mit der Erstellung des `MyDeadLetterQueue` Stacks und zeigt den Status **CREATE\$1IN\$1PROGRESS** an. **Wenn der Vorgang abgeschlossen ist, wird der Status CREATE\$1COMPLETE CloudFormation angezeigt.**