

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengatur notifikasi di Kinesis Video Streams
<a name="notifications"></a>

Saat fragmen media tersedia untuk dikonsumsi, Kinesis Video Streams akan memberi tahu pelanggan yang menggunakan notifikasi ( Amazon Simple Notification Service Amazon SNS). 

**catatan**  
Amazon Kinesis Video Streams menggunakan Topik Standar Amazon SNS untuk komunikasi. Topik FIFO saat ini tidak didukung.

Topik berikut menjelaskan cara memulai dengan notifikasi.

**Topics**
+ [Kelola konfigurasi notifikasi](#manage-configurations)
+ [Tentang tag MKV produser](#producer-mkv-tags)
+ [Pesan Amazon SNS](#sns-messages)
+ [Penerbitan notifikasi Amazon SNS lintas akun](#cross-account-sns)

## Kelola konfigurasi notifikasi
<a name="manage-configurations"></a>

Untuk mengelola konfigurasi notifikasi, gunakan `UpdateNotificationConfiguration` dan`DescribeNotificationConfiguration`. Lihat di bawah untuk informasi lebih lanjut.

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

Gunakan operasi API ini untuk memperbarui informasi notifikasi untuk aliran. Untuk informasi selengkapnya tentang `UpdateNotificationConfiguration` fitur ini, lihat [UpdateNotificationConfiguration ](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateNotificationConfiguration.html)di Panduan *Pengembang Amazon Kinesis Video Streams*. **** 

**catatan**  
Dibutuhkan setidaknya satu menit untuk memulai notifikasi setelah memperbarui konfigurasi notifikasi. Tunggu setidaknya satu menit sebelum memanggil `PutMedia` setelah panggilan pembaruan. 

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

Gunakan API ini untuk menjelaskan konfigurasi notifikasi yang dilampirkan ke aliran. Untuk informasi selengkapnya tentang `DescribeNotificationConfiguration` fitur ini, lihat [DescribeNotificationConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeNotificationConfiguration.html)di Panduan *Pengembang Amazon Kinesis Video Streams*. ****

## Tentang tag MKV produser
<a name="producer-mkv-tags"></a>

 Anda dapat menggunakan SDK produser Kinesis Video Streams untuk menandai fragmen tertentu yang diinginkan dengan mengekspos operasi API di SDK. Lihat contoh cara kerjanya [di bagian kode ini](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp#L404). Setelah memanggil API ini, SDK akan menambahkan satu set tag MKV yang telah ditentukan bersama dengan data fragmen. Kinesis Video Streams akan mengenali tag MKV khusus ini dan memulai pemberitahuan untuk fragmen yang ditandai. 

Setiap metadata fragmen yang disediakan bersama dengan tag Notification MKV akan dipublikasikan sebagai bagian dari payload topik Amazon SNS.

### Sintaks untuk tag MKV produser
<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
```

### Batas tag MKV
<a name="mkv-tag-limits"></a>

Tabel berikut mencantumkan batasan yang terkait dengan tag metadata. Jika batas tag metadata dapat disesuaikan, Anda dapat meminta peningkatan melalui manajer akun Anda. 


| Kuota | Nilai maks | Dapat Disesuaikan | 
| --- | --- | --- | 
|  Panjang tombol metadata opsional  |  128  |  Tidak  | 
|  Panjang nilai metadata opsional  |  256  |  Tidak  | 
|  Jumlah maksimum metadata opsional  |  10  |  Ya  | 

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

Topik ini berisi informasi lebih lanjut tentang pesan Amazon SNS dan muatan topik.

**Topics**
+ [Payload topik Amazon SNS](#topic-payload)
+ [Lihat pesan Amazon SNS Anda](#viewing-messages)

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

Setiap pemberitahuan yang dimulai melalui alur kerja sebelumnya akan mengirimkan muatan topik Amazon SNS, seperti yang ditunjukkan pada contoh berikut. Contoh ini adalah pesan Amazon SNS yang terjadi setelah mengkonsumsi data notifikasi dari antrian Amazon Simple Queue Service (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
    }
}
```

### Lihat pesan Amazon SNS Anda
<a name="viewing-messages"></a>

Anda tidak dapat membaca pesan langsung dari topik Amazon SNS karena tidak ada API untuk melakukannya. Untuk melihat pesan, berlangganan antrean SQS ke topik SNS, atau pilih tujuan lain yang didukung [Amazon](https://docs.aws.amazon.com//sns/latest/dg/sns-event-destinations.html) SNS. Namun, opsi paling efisien untuk melihat pesan adalah dengan menggunakan Amazon SQS. 

**Untuk melihat pesan Amazon SNS Anda menggunakan Amazon SQS**

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

1. Dari Konsol Manajemen AWS, buka topik Amazon SNS yang ditetapkan sebagai tujuan di bawah. `NotificationConfiguration`

1. Pilih **Buat Langganan**, lalu pilih antrean Amazon SQS yang dibuat pada langkah pertama.

1. Jalankan `PutMedia` sesi dengan konfigurasi Notification diaktifkan dan dengan tag Notification MKV ditambahkan ke fragmen.

1. Pilih antrean Amazon SQS di konsol Amazon SQS, lalu pilih **Kirim dan terima** pesan untuk antrean Amazon SQS.

1. Polling untuk pesan. Perintah ini harus menampilkan semua notifikasi yang dihasilkan oleh `PutMedia` sesi. Untuk informasi tentang polling, lihat jajak pendapat [pendek dan panjang Amazon SQS](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html).

## Penerbitan notifikasi Amazon SNS lintas akun
<a name="cross-account-sns"></a>

Untuk memublikasikan notifikasi Amazon SNS ke topik di AWS akun lain, Anda perlu mengonfigurasi kebijakan berbasis identitas dan berbasis sumber daya. Pengaturan ini memungkinkan Kinesis Video Streams untuk mempublikasikan notifikasi dari satu akun ke topik Amazon SNS di akun lain.

### Konfigurasi kebijakan berbasis identitas
<a name="cross-account-identity-policy"></a>

Peran IAM atau pengguna yang memanggil `PutMedia` API harus memiliki `sns:Publish` izin untuk topik Amazon SNS lintas akun. Tambahkan pernyataan kebijakan berikut ke kebijakan berbasis identitas:

------
#### [ 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:*"
            ]
        }
    ]
}
```

------

### Konfigurasi kebijakan berbasis sumber daya
<a name="cross-account-resource-policy"></a>

Topik Amazon SNS di akun tujuan harus memiliki kebijakan akses berbasis sumber daya yang memungkinkan akun sumber untuk mempublikasikan pesan. Konfigurasikan kebijakan akses topik Amazon SNS sebagai berikut:

------
#### [ 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"
    }
  ]
}
```

------

Ganti `<kvs_streams_account_id>` dengan ID AWS akun tempat aliran Video Streams Kinesis Anda berada, `<sns_topic_arn>` dan dengan ARN topik Amazon SNS Anda.

### Persyaratan dan pertimbangan
<a name="cross-account-requirements"></a>
+ Kebijakan berbasis identitas (di akun sumber) dan kebijakan berbasis sumber daya (di akun tujuan) harus dikonfigurasi agar penerbitan lintas akun berfungsi.
+ Peran IAM yang digunakan untuk `PutMedia` operasi harus menyertakan `sns:Publish` izin, bahkan saat menggunakan sertifikat IoT dengan alias peran.