View a markdown version of this page

Benachrichtigungen in Kinesis Video Streams einrichten - Amazon Kinesis Video Streams

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

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.

Benachrichtigungskonfigurationen verwalten

Verwenden Sie UpdateNotificationConfiguration und, um Benachrichtigungskonfigurationen zu verwaltenDescribeNotificationConfiguration. Weitere Informationen hierzu finden Sie unten.

UpdateNotificationConfiguration

Verwenden Sie diesen API-Vorgang, um die Benachrichtigungsinformationen für einen Stream zu aktualisieren. Weitere Informationen zu dieser UpdateNotificationConfiguration Funktion finden Sie UpdateNotificationConfiguration 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

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 im Amazon Kinesis Video Streams-Entwicklerhandbuch.

Über die MKV-Tags des Herstellers

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

|+ 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

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

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

Payload zum Thema Amazon SNS

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

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

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

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

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

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

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

Cross-account Veröffentlichung von Amazon SNS-Benachrichtigungen

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

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

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

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