

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.

# Analysieren von Amazon SNS SNS-Nachrichtenformaten
<a name="sns-message-and-json-formats"></a>

Wenn Amazon SNS Nachrichten an HTTP/HTTPS Endpunkte sendet, enthalten sie sowohl HTTP-Header als auch einen JSON-Nachrichtentext. Diese Nachrichten folgen einem strukturierten Format, das Metadaten wie Nachrichtentyp, Themen-ARN, Zeitstempel und digitale Signaturen enthält. Durch die korrekte Analyse von Amazon SNS SNS-Nachrichten können Sie feststellen, ob es sich bei einer Nachricht um eine Abonnementbestätigung, Benachrichtigung oder Abmeldebestätigung handelt, relevante Daten extrahieren und die Echtheit mithilfe der Signaturvalidierung überprüfen.

# HTTP/HTTPS-Header
<a name="http-header"></a>

Wenn Amazon SNS eine Abonnementbestätigung, Benachrichtigung oder Bestätigungsnachricht an HTTP/HTTPS Endgeräte sendet, sendet es eine POST-Nachricht mit einer Reihe von Amazon SNS-spezifischen Header-Werten. Sie können Header-Werte für Aufgaben wie das Identifizieren des Nachrichtentyps verwenden, ohne den JSON-Nachrichtentext zu analysieren, um den `Type`Wert zu lesen. Standardmäßig sendet Amazon SNS alle Benachrichtigungen an HTTP/S-Endpunkte, wobei `Content-Type` auf `text/plain; charset=UTF-8` festgelegt ist. Informationen zur Auswahl eines `Content-Type` anderen Typs als text/plain (Standard) finden Sie unter. `headerContentType` [Erstellung HTTP/S einer Lieferrichtlinie](sns-message-delivery-retries.md#creating-delivery-policy)

**`x-amz-sns-message-type`**  
Der Nachrichtentyp. Die möglichen Werte sind `SubscriptionConfirmation`, `Notification` und `UnsubscribeConfirmation`.

**`x-amz-sns-message-id`**  
Ein universell eindeutiger Bezeichner (UUID), der für jede veröffentlichte Benachrichtigung eindeutig ist. Für eine Benachrichtigung, die Amazon SNS während eines Wiederholversuchs sendet, wird die Nachrichten-ID der ursprünglichen Nachricht verwendet.

**`x-amz-sns-topic-arn`**  
Amazon Resource Name (ARN) des Themas, in dem die Nachricht veröffentlicht wurde.

**`x-amz-sns-subscription-arn`**  
Die ARN für das Abonnement für diesen Endpunkt.

Der folgende „HTTP POST“-Header ist ein Beispiel für einen Header für eine `Notification`-Benachrichtigung, die an einen HTTP-Endpunkt gesendet wurde.

```
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55
Content-Length: 1336
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent
```

# JSON-Format für die HTTP/HTTPS-Abonnement-Bestätigung
<a name="http-subscription-confirmation-json"></a>

Nachdem Sie einen HTTP/HTTPS Endpunkt abonniert haben, sendet Amazon SNS eine Bestätigungsnachricht für das Abonnement an den HTTP/HTTPS Endpunkt. Diese Nachricht enthält einen `SubscribeURL`-Wert, den Sie besuchen müssen, um das Abonnement zu bestätigen (alternativ können Sie den `Token`-Wert mit der Aktion [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) verwenden). 

**Anmerkung**  
Amazon SNS sendet keine Benachrichtigungen an diesen Endpunkt, solange das Abonnement nicht bestätigt wurde

Bei der Abonnement-Bestätigung handelt es sich um eine POST-Nachricht mit einem Nachrichtentext, der ein JSON-Dokument mit den folgenden Name-Wert-Paaren enthält.

**`Type`**  
Der Nachrichtentyp. Für eine Abonnement-Bestätigung ist der Typ `SubscriptionConfirmation`.

**`MessageId`**  
Ein universell eindeutiger Bezeichner (UUID), der für jede veröffentlichte Benachrichtigung eindeutig ist. Für eine Nachricht, die Amazon SNS während eines Wiederholversuchs sendet, wird die Nachrichten-ID der ursprünglichen Nachricht verwendet.

**`Token`**  
Ein Wert, den Sie mit der Aktion [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) verwenden können, um das Abonnement zu bestätigen. Sie können aber auch einfach nur den Parameter besuchen `SubscribeURL`.

**`TopicArn`**  
Amazon Resource Name (ARN) des Themas, für das dieser Endpunkt abonniert wurde.

**`Message`**  
Eine Zeichenfolge, die die Nachricht beschreibt. Bei einer Abonnement-Bestätigung sieht diese Zeichenfolge wie folgt aus:  

```
You have chosen to subscribe to the topic arn:aws:sns:us-east-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.
```

**`SubscribeURL`**  
Die URL, die Sie besuchen müssen, um das Abonnement zu bestätigen. Alternativ können Sie auch den Parameter `Token` mit der Aktion [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html)verwenden, um das Abonnement zu bestätigen.

**`Timestamp`**  
Die Uhrzeit (GMT), zu der die Abonnement-Bestätigung gesendet wurde.

**`SignatureVersion`**  
Version der verwendeten Amazon-SNS-Signatur.  
+ Wenn `SignatureVersion` **1** lautet, ist `Signature` eine Base64-kodierte `SHA1withRSA`-Signatur der Werte `Message`, `MessageId`, `Type`, `Timestamp` und `TopicArn`. 
+ Wenn `SignatureVersion` **2** lautet, ist `Signature` eine Base64-kodierte `SHA256withRSA`-Signatur der Werte `Message`, `MessageId`, `Type`, `Timestamp` und `TopicArn`.

**`Signature`**  
Eine Base64-kodierte `SHA1withRSA`- oder `SHA256withRSA`-Signatur der Werte `Message`, `MessageId`, `Type`, `Timestamp` und `TopicArn`.

**`SigningCertURL`**  
Die URL, die den Zugriff auf das Zertifikat ermöglicht, das zum Signieren der Nachricht verwendet wurde.

Die folgende „HTTP POST“-Nachricht ist ein Beispiel für eine `SubscriptionConfirmation`-Benachrichtigung, die an einen HTTP-Endpunkt gesendet wurde.

```
POST / HTTP/1.1
x-amz-sns-message-type: SubscriptionConfirmation
x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
Content-Length: 1336
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent

{
  "Type" : "SubscriptionConfirmation",
  "MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b",
  "Token" : "2336412f37...",
  "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
  "Message" : "You have chosen to subscribe to the topic arn:aws:sns:us-west-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.",
  "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37...",
  "Timestamp" : "2012-04-26T20:45:04.751Z",
  "SignatureVersion" : "1",
  "Signature" : "EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q=",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
```

# JSON-Format für eine HTTP/HTTPS-Benachrichtigung
<a name="http-notification-json"></a>

Wenn Amazon SNS eine Benachrichtigung an einen abonnierten HTTP- oder HTTPS-Endpunkt sendet, enthält der Nachrichtentext der POST-Nachricht, die an den Endpunkt gesendet wurde, ein JSON-Dokument mit den folgenden Name-Wert-Paaren.

**`Type`**  
Der Nachrichtentyp. Für eine Bestätigung ist der Typ `Notification`.

**`MessageId`**  
Ein universell eindeutiger Bezeichner (UUID), der für jede veröffentlichte Benachrichtigung eindeutig ist. Für eine Benachrichtigung, die Amazon SNS während eines Wiederholversuchs sendet, wird die Nachrichten-ID der ursprünglichen Nachricht verwendet.

**`TopicArn`**  
Amazon Resource Name (ARN) des Themas, in dem die Nachricht veröffentlicht wurde.

**`Subject`**  
Der Parameter `Subject`, der bei der Veröffentlichung der Benachrichtigung im Thema angegeben wurde.  
Dieser Parameter ist optional. Wenn kein `Subject` angegeben wurde, wird dieses Name-Wert-Paar nicht in diesem JSON-Dokument angezeigt.

**`Message`**  
Der Nachrichtenwert `Message`, der bei der Veröffentlichung der Benachrichtigung im Thema angegeben wurde.

**`Timestamp`**  
Uhrzeit (GMT), zu der die Benachrichtigung veröffentlicht wurde.

**`SignatureVersion`**  
Version der verwendeten Amazon-SNS-Signatur.  
+ Wenn `SignatureVersion` **1** lautet, ist `Signature` eine Base64-kodierte `SHA1withRSA`-Signatur der Werte `Message`, `MessageId`, `Subject` (sofern vorhanden), `Type`, `Timestamp` und `TopicArn`.
+ Wenn `SignatureVersion` **2** lautet, ist `Signature` eine Base64-kodierte `SHA256withRSA`-Signatur der Werte `Message`, `MessageId`, `Subject` (sofern vorhanden), `Type`, `Timestamp` und `TopicArn`.

**`Signature`**  
Eine Base64-kodierte `SHA1withRSA`- oder `SHA256withRSA`-Signatur der Werte `Message`, `MessageId`, `Subject` (sofern vorhanden), `Type`, `Timestamp` und `TopicArn`.

**`SigningCertURL`**  
Die URL, die den Zugriff auf das Zertifikat ermöglicht, das zum Signieren der Nachricht verwendet wurde.

**`UnsubscribeURL`**  
Eine URL, die Sie verwenden können, um den Endpunkt aus diesem Thema abzumelden. Wenn Sie diese URL besuchen, meldet Amazon SNS den Endpunkt ab und es werden keine weiteren Benachrichtigungen an diesen Endpunkt gesendet.

Die folgende „HTTP POST“-Nachricht ist ein Beispiel für eine `Notification`-Benachrichtigung, die an einen HTTP-Endpunkt gesendet wurde.

```
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96
Content-Length: 773
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent

{
  "Type" : "Notification",
  "MessageId" : "22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324",
  "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
  "Subject" : "My First Message",
  "Message" : "Hello world!",
  "Timestamp" : "2012-05-02T00:54:06.655Z",
  "SignatureVersion" : "1",
  "Signature" : "EXAMPLEw6JRN...",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
  "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96"
  }
```

# JSON-Format für die HTTP/HTTPS-Abonnement-Abmeldung
<a name="http-unsubscribe-confirmation-json"></a>

Nachdem ein HTTP/HTTPS Endpunkt von einem Thema abgemeldet wurde, sendet Amazon SNS eine Bestätigungsnachricht an den Endpunkt.

Bei der Abmelde-Bestätigung handelt es sich um eine POST-Nachricht mit einem Nachrichtentext, der ein JSON-Dokument mit den folgenden Name-Wert-Paaren enthält.

**`Type`**  
Der Nachrichtentyp. Für eine Abmelde-Bestätigung ist der Typ `UnsubscribeConfirmation`.

**`MessageId`**  
Ein universell eindeutiger Bezeichner (UUID), der für jede veröffentlichte Benachrichtigung eindeutig ist. Für eine Nachricht, die Amazon SNS während eines Wiederholversuchs sendet, wird die Nachrichten-ID der ursprünglichen Nachricht verwendet.

**`Token`**  
Ein Wert, den Sie mit der Aktion [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) verwenden können, um das Abonnement erneut zu bestätigen. Sie können aber auch einfach nur den Parameter besuchen `SubscribeURL`.

**`TopicArn`**  
Amazon Resource Name (ARN) des Themas, von dem dieser Endpunkt abgemeldet wurde.

**`Message`**  
Eine Zeichenfolge, die die Nachricht beschreibt. Bei einer Abmelde-Bestätigung sieht diese Zeichenfolge wie folgt aus:  

```
You have chosen to deactivate subscription arn:aws:sns:us-east-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.
```

**`SubscribeURL`**  
Die URL, die Sie besuchen müssen, um das Abonnement erneut zu bestätigen. Alternativ können Sie auch den Parameter `Token` mit der Aktion [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html)verwenden, um das Abonnement erneut zu bestätigen.

**`Timestamp`**  
Uhrzeit (GMT), zu der die Abmelde-Bestätigung gesendet wurde.

**`SignatureVersion`**  
Version der verwendeten Amazon-SNS-Signatur.  
+ Wenn `SignatureVersion` **1** lautet, ist `Signature` eine Base64-kodierte `SHA1withRSA`-Signatur der Werte `Message`, `MessageId`, `Type`, `Timestamp` und `TopicArn`.
+ Wenn `SignatureVersion` **2** lautet, ist `Signature` eine Base64-kodierte `SHA256withRSA`-Signatur der Werte `Message`, `MessageId`, `Type`, `Timestamp` und `TopicArn`.

**`Signature`**  
Eine Base64-kodierte `SHA1withRSA`- oder `SHA256withRSA`-Signatur der Werte `Message`, `MessageId`, `Type`, `Timestamp` und `TopicArn`.

**`SigningCertURL`**  
Die URL, die den Zugriff auf das Zertifikat ermöglicht, das zum Signieren der Nachricht verwendet wurde.

Die folgende „HTTP POST“-Nachricht ist ein Beispiel für eine `UnsubscribeConfirmation`-Benachrichtigung, die an einen HTTP-Endpunkt gesendet wurde.

```
POST / HTTP/1.1
x-amz-sns-message-type: UnsubscribeConfirmation
x-amz-sns-message-id: 47138184-6831-46b8-8f7c-afc488602d7d
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55
Content-Length: 1399
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent

{
  "Type" : "UnsubscribeConfirmation",
  "MessageId" : "47138184-6831-46b8-8f7c-afc488602d7d",
  "Token" : "2336412f37...",
  "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
  "Message" : "You have chosen to deactivate subscription arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.",
  "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb6...",
  "Timestamp" : "2012-04-26T20:06:41.581Z",
  "SignatureVersion" : "1",
  "Signature" : "EXAMPLEHXgJm...",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
```

# SetSubscriptionAttributes JSON-Format für Lieferrichtlinien
<a name="set-sub-attributes-delivery-policy-json"></a>

Wenn Sie eine Anforderung an die Aktion `SetSubscriptionAttributes` senden und den Parameter `AttributeName` auf den Wert `DeliveryPolicy` festlegen, muss der Wert des Parameters `AttributeValue` ein gültiges JSON-Objekt sein. Im folgenden Beispiel wird die Zustellungsrichtlinie auf insgesamt 5 Wiederholversuche festgelegt.

```
http://sns.us-east-2.amazonaws.com/
?Action=SetSubscriptionAttributes
&SubscriptionArn=arn%3Aaws%3Asns%3Aus-east-2%3A123456789012%3AMy-Topic%3A80289ba6-0fd4-4079-afb4-ce8c8260f0ca
&AttributeName=DeliveryPolicy
&AttributeValue={"healthyRetryPolicy":{"numRetries":5}}
...
```

Verwenden Sie das folgende JSON-Format für den Wert des Parameters `AttributeValue`.

```
{
    "healthyRetryPolicy" : {
        "minDelayTarget" :  int,
        "maxDelayTarget" : int,
        "numRetries" : int,
        "numMaxDelayRetries" : int,
        "backoffFunction" : "linear|arithmetic|geometric|exponential"
    },
    "throttlePolicy" : {
        "maxReceivesPerSecond" : int
    },
    "requestPolicy" : {
        "headerContentType" : "text/plain | application/json | application/xml"
    }
}
```

Weitere Informationen zu der `SetSubscriptionAttribute` Aktion finden Sie [SetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html)in der *Amazon Simple Notification Service API-Referenz*. Weitere Hinweise zu den unterstützten HTTP-Inhaltstyp-Headern finden Sie unter [Erstellung HTTP/S einer Lieferrichtlinie](sns-message-delivery-retries.md#creating-delivery-policy).

# SetTopicAttributes JSON-Format für Lieferrichtlinien
<a name="set-topic-attributes-delivery-policy-json"></a>

Wenn Sie eine Anforderung an die Aktion `SetTopicAttributes` senden und den Parameter `AttributeName` auf den Wert `DeliveryPolicy` festlegen, muss der Wert des Parameters `AttributeValue` ein gültiges JSON-Objekt sein. Im folgenden Beispiel wird die Zustellungsrichtlinie auf insgesamt 5 Wiederholversuche festgelegt.

```
http://sns.us-east-2.amazonaws.com/
?Action=SetTopicAttributes
&TopicArn=arn%3Aaws%3Asns%3Aus-east-2%3A123456789012%3AMy-Topic
&AttributeName=DeliveryPolicy
&AttributeValue={"http":{"defaultHealthyRetryPolicy":{"numRetries":5}}}
...
```

Verwenden Sie das folgende JSON-Format für den Wert des Parameters `AttributeValue`.

```
{
    "http" : {
        "defaultHealthyRetryPolicy" : {
            "minDelayTarget":  int,
            "maxDelayTarget": int,
            "numRetries": int,
            "numMaxDelayRetries": int,
            "backoffFunction": "linear|arithmetic|geometric|exponential"
        },
        "disableSubscriptionOverrides" : Boolean,
        "defaultThrottlePolicy" : {
            "maxReceivesPerSecond" : int
        },
        "defaultRequestPolicy" : {
            "headerContentType" : "text/plain | application/json | application/xml"
        }
    }
}
```

Weitere Informationen zu der `SetTopicAttribute` Aktion finden Sie [SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)in der *Amazon Simple Notification Service API-Referenz*. Weitere Hinweise zu den unterstützten HTTP-Inhaltstyp-Headern finden Sie unter [Erstellung HTTP/S einer Lieferrichtlinie](sns-message-delivery-retries.md#creating-delivery-policy).