

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.

# Benachrichtigungen in Kinesis Video Streams einrichten
<a name="notifications"></a>

Wenn ein Medienfragment zur Nutzung verfügbar ist, benachrichtigt Kinesis Video Streams Kunden mithilfe von Amazon Simple Notification Service (Amazon SNS) -Benachrichtigungen. 

**Anmerkung**  
Amazon Kinesis Video Streams verwendet Amazon SNS-Standardthemen für die Kommunikation. FIFO-Themen werden derzeit nicht unterstützt.

In den folgenden Themen wird erläutert, wie Sie mit Benachrichtigungen beginnen.

**Topics**
+ [Benachrichtigungskonfigurationen verwalten](#manage-configurations)
+ [Über die MKV-Tags des Herstellers](#producer-mkv-tags)
+ [Amazon SNS-Nachrichten](#sns-messages)
+ [Cross-account Veröffentlichung von Amazon SNS-Benachrichtigungen](#cross-account-sns)

## Benachrichtigungskonfigurationen verwalten
<a name="manage-configurations"></a>

Verwenden Sie `UpdateNotificationConfiguration` und, um Benachrichtigungskonfigurationen zu verwalten`DescribeNotificationConfiguration`. Weitere Informationen hierzu finden Sie unten.

### UpdateNotificationConfiguration
<a name="update-notification-config"></a>

Verwenden Sie diesen API-Vorgang, um die Benachrichtigungsinformationen für einen Stream zu aktualisieren. Weitere Informationen zu dieser `UpdateNotificationConfiguration` Funktion finden Sie [ UpdateNotificationConfiguration ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_UpdateNotificationConfiguration.html) im * Amazon Kinesis Video Streams-Entwicklerhandbuch*. **** 

**Anmerkung**  
Nach der Aktualisierung der Benachrichtigungskonfiguration dauert es mindestens eine Minute, um die Benachrichtigung zu initiieren. Warten Sie `PutMedia` nach dem Aktualisierungsaufruf mindestens eine Minute, bevor Sie den Vorgang aufrufen. 

### DescribeNotificationConfiguration
<a name="describe-notification-config"></a>

Verwenden Sie diese API, um eine Benachrichtigungskonfiguration zu beschreiben, die an einen Stream angehängt ist. Weitere Informationen zu dieser `DescribeNotificationConfiguration` Funktion finden Sie [ DescribeNotificationConfiguration ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeNotificationConfiguration.html) im * Amazon Kinesis Video Streams-Entwicklerhandbuch*. ****

## Über die MKV-Tags des Herstellers
<a name="producer-mkv-tags"></a>

 Sie können das Producer SDK von Kinesis Video Streams verwenden, um bestimmte Fragmente von Interesse zu kennzeichnen, indem Sie eine API-Operation im SDK verfügbar machen. Ein Beispiel dafür, wie das funktioniert, finden Sie [ in diesem Codeabschnitt. ](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp#L404) Beim Aufrufen dieser API fügt das SDK eine Reihe vordefinierter MKV-Tags zusammen mit den Fragmentdaten hinzu. Kinesis Video Streams erkennt diese speziellen MKV-Tags und initiiert Benachrichtigungen für die markierten Fragmente. 

Alle Fragment-Metadaten, die zusammen mit den MKV-Tags für Benachrichtigungen bereitgestellt werden, werden als Teil der Amazon SNS-Themen-Payload veröffentlicht.

### Syntax für Hersteller-MKV-Tags
<a name="producer-mkv-tags-syntax"></a>

```
|+ Tags
| + Tag
|  // MANDATORY: Predefined MKV tag to trigger the notification for the fragment
|  + Simple
|   + Name: AWS_KINESISVIDEO_NOTIFICATION
|   + String
| // OPTIONAL: Key value pairs that will be sent as part of the Notification payload
|  + Simple
|   + Name: {{CUSTOM_KEY_1}} // Max 128 bytes
|   + String:{{CUSTOM_VALUE_1}} // Max 256 bytes
|  + Simple
|   + Name: {{CUSTOM_KEY_2}} // Max 128 bytes
|   + String: {{CUSTOM_VALUE_2}} // Max 256 bytes
```

### Grenzwerte für MKV-Tags
<a name="mkv-tag-limits"></a>

In der folgenden Tabelle sind die mit den Metadaten-Tags verbundenen Einschränkungen aufgeführt. Wenn das Limit für Metadaten-Tags anpassbar ist, können Sie bei Ihrem Account Manager eine Erhöhung beantragen. 


| Limit | Maximaler Wert | Einstellbar | 
| --- | --- | --- | 
| Optionale Schlüssellänge für Metadaten | 128 | Nein | 
| Optionale Länge des Metadatenwerts | 256 | Nein | 
| Maximale Anzahl optionaler Metadaten | 10 | Ja | 

## Amazon SNS-Nachrichten
<a name="sns-messages"></a>

Dieses Thema enthält weitere Informationen zu Amazon SNS-Nachrichten und Themen-Payloads.

**Topics**
+ [Payload zum Thema Amazon SNS](#topic-payload)
+ [Sehen Sie sich Ihre Amazon SNS-Nachrichten an](#viewing-messages)

### Payload zum Thema Amazon SNS
<a name="topic-payload"></a>

Jede Benachrichtigung, die über den vorherigen Workflow initiiert wurde, liefert die Payload für das Amazon SNS-Thema, wie im folgenden Beispiel gezeigt. Bei diesem Beispiel handelt es sich um eine Amazon SNS-Nachricht, die nach dem Verbrauch von Benachrichtigungsdaten aus einer Amazon Simple Queue Service (Amazon SQS) -Warteschlange auftritt.

```
{
"Type" : "Notification",
"MessageId" : {{Message ID}},
"TopicArn" : {{SNS ARN}},
"Subject" : "Kinesis Video Streams Notification",
"Message" : "{\"StreamArn\":\{{Stream Arn}},\"FragmentNumber\":\{{Fragment Number}},\"FragmentStartProducerTimestamp\":{{FragmentStartProducerTimestamp}},
                \"FragmentStartServerTimestamp\":{{FragmentStartServerTimestamp}},\"NotificationType\":\"PERSISTED\",\"NotificationPayload\":{\ {{CUSTOM_KEY_1}}:\{{CUSTOM_VALUE_1}},
                \{{CUSTOM_KEY_2}}:\{{CUSTOM_VALUE_2}}}}",
"Timestamp" : "2022-04-25T18:36:29.194Z",
"SignatureVersion" : {{Signature Version}},
"Signature" : {{Signature}},
"SigningCertURL" : {{Signing Cert URL}},
"UnsubscribeURL" : {{Unsubscribe URL}}
}
```

```
Subject: "Kinesis Video Streams Notification"
Message: 
{
    "StreamArn":{{Stream Arn}},
    "FragmentNumber":{{Fragment Number}},
    "FragmentStartProducerTimestamp":{{Fragment Start Producer Timestamp}},
    "FragmentStartServerTimestamp":{{Fragment Start Server Timestamp}},
    "NotificationType":"PERSISTED",
    "NotificationPayload":{
        {{CUSTOM_KEY_1}}:{{CUSTOM_VALUE_1}},
        {{CUSTOM_KEY_2}}:{{CUSTOM_VALUE_2}}
    }
}
```

### Sehen Sie sich Ihre Amazon SNS-Nachrichten an
<a name="viewing-messages"></a>

Sie können Nachrichten nicht direkt aus einem Amazon SNS-Thema lesen, da es dafür keine API gibt. Um die Nachrichten anzusehen, abonnieren Sie eine SQS-Warteschlange für das SNS-Thema oder wählen Sie ein anderes von [ Amazon SNS unterstütztes Ziel. ](https://docs.aws.amazon.com/sns/latest/dg/sns-event-destinations.html) Die effizienteste Option zum Anzeigen von Nachrichten ist jedoch die Verwendung von Amazon SQS. 

**Um Ihre Amazon SNS-Nachrichten mithilfe von Amazon SQS anzuzeigen**

1. Erstellen Sie eine [ Amazon SQS-Warteschlange. ](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-create-queue.html) 

1. Öffnen Sie in der das Amazon SNS-Thema AWS-Managementkonsole, das als Ziel unter festgelegt wurde. `NotificationConfiguration`

1. Wählen Sie ** Create Subscription ** und dann die Amazon SQS-Warteschlange aus, die im ersten Schritt erstellt wurde.

1. Führen Sie eine `PutMedia` Sitzung mit aktivierter Benachrichtigungskonfiguration aus und fügen Sie den Fragmenten die MKV-Tags für Benachrichtigungen hinzu.

1. Wählen Sie in der Amazon SQS-Konsole die Amazon SQS-Warteschlange aus und wählen Sie dann Nachrichten ** senden und empfangen ** für die Amazon SQS-Warteschlange aus.

1. Umfrage nach Nachrichten. Dieser Befehl sollte alle von der `PutMedia` Sitzung generierten Benachrichtigungen anzeigen. Informationen zu Polling finden Sie unter [ Amazon SQS short and long polling. ](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html)

## Cross-account Veröffentlichung von Amazon SNS-Benachrichtigungen
<a name="cross-account-sns"></a>

Um Amazon SNS-Benachrichtigungen zu einem Thema in einem anderen AWS Konto zu veröffentlichen, müssen Sie sowohl identitätsbasierte als auch ressourcenbasierte Richtlinien konfigurieren. Diese Konfiguration ermöglicht es Kinesis Video Streams, Benachrichtigungen von einem Konto zu einem Amazon SNS-Thema in einem anderen Konto zu veröffentlichen.

### Identity-based Konfiguration der Richtlinie
<a name="cross-account-identity-policy"></a>

Die IAM-Rolle oder der IAM-Benutzer, der die `PutMedia` API aufruft, muss über `sns:Publish` Berechtigungen für das kontoübergreifende Amazon SNS-Thema verfügen. Fügen Sie der identitätsbasierten Richtlinie die folgende Richtlinienerklärung hinzu:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesisvideo:PutMedia",
            "Resource": "arn:aws:kinesisvideo:us-east-1:123456789012:stream/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sns:Publish"
            ],
            "Resource": [
                "arn:aws:sns:us-east-1:123456789012:*"
            ]
        }
    ]
}
```

------

### Resource-based Konfiguration der Richtlinie
<a name="cross-account-resource-policy"></a>

Das Amazon SNS-Thema im Zielkonto muss über eine ressourcenbasierte Zugriffsrichtlinie verfügen, die es dem Quellkonto ermöglicht, Nachrichten zu veröffentlichen. Konfigurieren Sie die Zugriffsrichtlinie für Amazon SNS-Themen wie folgt:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "__default_statement_ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "SNS:Publish",
      "Resource": "arn:aws:sns:us-east-1:123456789012:topic-name"
    }
  ]
}
```

------

`<kvs_streams_account_id>`Ersetzen Sie es durch die AWS Konto-ID, unter der sich Ihre Kinesis Video Streams-Streams befinden, und `<sns_topic_arn>` durch den ARN Ihres Amazon SNS-Themas.

### Anforderungen und Überlegungen
<a name="cross-account-requirements"></a>
+ Sowohl die identitätsbasierte Richtlinie (im Quellkonto) als auch die ressourcenbasierte Richtlinie (im Zielkonto) müssen konfiguriert werden, damit die kontoübergreifende Veröffentlichung funktioniert.
+ Die für `PutMedia` Operationen verwendete IAM-Rolle muss `sns:Publish` Berechtigungen enthalten, auch wenn IoT-Zertifikate mit Rollenaliasen verwendet werden.