Kinesis Video Streams で通知を設定する - Amazon Kinesis Video Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Kinesis Video Streams で通知を設定する

メディアフラグメントが使用可能になると、Kinesis Video Streams は Amazon Simple Notification Service (Amazon SNS) 通知を使用してお客様に通知します。

注記

Amazon Kinesis Video Streams は、通信に Amazon SNS 標準トピックを使用します。FIFO トピックは現在サポートされていません。

以下のトピックでは、通知の使用を開始する方法について説明します。

通知設定の管理

通知設定を管理するには、 UpdateNotificationConfigurationと を使用しますDescribeNotificationConfiguration。詳細については、以下を参照してください。

UpdateNotificationConfiguration

この API オペレーションを使用して、ストリームの通知情報を更新します。UpdateNotificationConfiguration 機能の詳細については、Amazon Kinesis Video Streamsデベロッパーガイド」のUpdateNotificationConfiguration」を参照してください。

注記

通知設定を更新してから通知を開始するには、少なくとも 1 分かかります。更新呼び出しPutMedia後、 を呼び出す前に少なくとも 1 分待ちます。

DescribeNotificationConfiguration

この API を使用して、ストリームにアタッチされた通知設定を記述します。DescribeNotificationConfiguration 機能の詳細については、Amazon Kinesis Video Streamsデベロッパーガイド」の「DescribeNotificationConfiguration」を参照してください。

プロデューサー MKV タグについて

Kinesis Video Streams プロデューサー SDK を使用して、SDK で API オペレーションを公開することで、関心のある特定のフラグメントにタグを付けることができます。このセクションのコードで、この仕組みのサンプルを参照してください。この API を呼び出すと、SDK はフラグメントデータとともに事前定義された MKV タグのセットを追加します。Kinesis Video Streams は、これらの特別な MKV タグを認識し、タグ付けされたフラグメントの通知を開始します。

Notification MKV タグとともに提供されるフラグメントメタデータは、Amazon SNS トピックペイロードの一部として公開されます。

プロデューサー MKV タグの構文

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

MKV タグの制限

次の表に、メタデータタグに関連する制限を示します。メタデータタグの制限が調整可能な場合は、アカウントマネージャーを通じて引き上げをリクエストできます。

[制限] 最大値 調整可能

オプションのメタデータキーの長さ

128

なし

オプションのメタデータ値の長さ

256

なし

オプションのメタデータの最大数

10

[Yes (はい)]

Amazon SNS メッセージ

このトピックには、Amazon SNS メッセージとトピックペイロードに関する詳細情報が含まれています。

Amazon SNS トピックペイロード

前のワークフローで開始された通知は、次の例に示すように、Amazon SNS トピックペイロードを配信します。この例は、 Amazon Simple Queue Service (Amazon SNSAmazon SQS メッセージです。

{ "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 } }

Amazon SNS メッセージを表示する

Amazon SNS トピックから直接メッセージを読み取ることはできません。そのための API がないためです。メッセージを表示するには、SQS キューを SNS トピックにサブスクライブするか、他の Amazon SNS でサポートされている送信先を選択します。ただし、メッセージを表示するための最も効率的なオプションは、Amazon SQS を使用することです。

Amazon SQS を使用して Amazon SNS メッセージを表示するには Amazon SQS
  1. Amazon SQS キューを作成します。

  2. から AWS Management Console、 の宛先として設定された Amazon SNS トピックを開きますNotificationConfiguration

  3. サブスクリプションの作成を選択し、最初のステップで作成した Amazon SQS キューを選択します。

  4. 通知設定を有効にし、通知 MKV タグをフラグメントに追加してPutMediaセッションを実行します。

  5. Amazon SQS コンソールで Amazon SQS キューを選択し、Amazon SQS キューのメッセージの送受信を選択します。

  6. メッセージのポーリング。このコマンドには、PutMediaセッションによって生成されたすべての通知が表示されます。ポーリングの詳細については、Amazon SQSショートポーリングとロングポーリング」を参照してください。

クロスアカウント Amazon SNS 通知の発行

別の AWS アカウントのトピックに Amazon SNS 通知を発行するには、アイデンティティベースのポリシーとリソースベースのポリシーの両方を設定する必要があります。この設定により、Kinesis Video Streams は、あるアカウントから別のアカウントの Amazon SNS トピックに通知を発行できます。

ID ベースのポリシー設定

PutMedia API を呼び出す IAM ロールまたはユーザーには、クロスアカウント Amazon SNS トピックに対するsns:Publishアクセス許可が必要です。ID ベースのポリシーに次のポリシーステートメントを追加します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:PutMedia", "Resource": "<kvs-streams-arn>" }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "<sns-topic-arn>" ] } ] }

リソースベースのポリシー設定

送信先アカウントの Amazon SNS トピックには、送信元アカウントにメッセージの発行を許可するリソースベースのアクセスポリシーが必要です。Amazon SNS トピックアクセスポリシーを次のように設定します。

{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__default_statement_ID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<kvs_streams_account_id>:root" }, "Action": "SNS:Publish", "Resource": "<sns_topic_arn>" } ] }

を Kinesis Video Streams ストリームがある AWS アカウント ID <kvs_streams_account_id>に置き換え、 を Amazon SNS トピックの ARN <sns_topic_arn>に置き換えます。

要件と考慮事項

  • ID ベースのポリシー (ソースアカウント内) とリソースベースのポリシー (宛先アカウント内) の両方を、クロスアカウント発行が機能するように設定する必要があります。

  • PutMedia オペレーションに使用される IAM ロールには、ロールエイリアスで IoT 証明書を使用する場合でも、sns:Publishアクセス許可を含める必要があります。