翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 オペレーションを公開することで、関心のある特定のフラグメントにタグを付けることができます。このセクションのコードで
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
-
Amazon SQS キューを作成します。
-
から AWS Management Console、 の宛先として設定された Amazon SNS トピックを開きます
NotificationConfiguration。 -
サブスクリプションの作成を選択し、最初のステップで作成した Amazon SQS キューを選択します。
-
通知設定を有効にし、通知 MKV タグをフラグメントに追加して
PutMediaセッションを実行します。 -
Amazon SQS コンソールで Amazon SQS キューを選択し、Amazon SQS キューのメッセージの送受信を選択します。
-
メッセージのポーリング。このコマンドには、
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アクセス許可を含める必要があります。