本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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。
注意
更新通知組態後,至少需要一分鐘的時間來啟動通知。更新呼叫PutMedia後,請等待至少一分鐘再叫用 。
DescribeNotificationConfiguration
使用此 API 描述連接到串流的通知組態。如需DescribeNotificationConfiguration此功能的詳細資訊,請參閱《Amazon Kinesis Video Streams 開發人員指南》中的 DescribeNotificationConfiguration。
關於生產者 MKV 標籤
您可以使用 Kinesis Video Streams 生產者 SDK,透過在 SDK 中公開 API 操作來標記感興趣的特定片段。請參閱本節程式碼中
隨通知 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 |
是 |
Amazon SNS 訊息
本主題包含有關 Amazon SNS 訊息和主題承載的詳細資訊。
Amazon SNS 主題承載
透過先前工作流程啟動的任何通知都會交付 Amazon SNS 主題承載,如下列範例所示。此範例是在從 Amazon Simple Queue Service (Amazon SQS) 佇列取用通知資料後發生的 Amazon SNS 訊息。 Amazon 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 佇列的訊息。 Amazon SQS
-
輪詢訊息。此命令應會顯示
PutMedia工作階段產生的所有通知。如需輪詢的相關資訊,請參閱 Amazon SQS 短輪詢和長輪詢。
跨帳戶 Amazon SNS 通知發佈
若要將 Amazon SNS 通知發佈至不同 AWS 帳戶中的主題,您需要同時設定身分型和資源型政策。此設定可讓 Kinesis Video Streams 將通知從一個帳戶發佈到另一個帳戶中的 Amazon SNS 主題。
身分型政策組態
呼叫 PutMedia API 的 IAM 角色或使用者必須具有跨帳戶 Amazon SNS 主題的sns:Publish許可。將下列政策陳述式新增至身分型政策:
{ "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>" } ] }
<kvs_streams_account_id> 將 取代為 Kinesis Video Streams 串流所在的 AWS 帳戶 ID,並將 <sns_topic_arn>取代為 Amazon SNS 主題的 ARN。
需求和考量事項
-
必須設定身分型政策 (在來源帳戶中) 和資源型政策 (在目的地帳戶中),才能跨帳戶發佈。
-
用於
PutMedia操作的 IAM 角色必須包含sns:Publish許可,即使使用具有角色別名的 IoT 憑證也一樣。