

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione delle notifiche in Kinesis Video Streams
<a name="notifications"></a>

Quando un frammento multimediale è disponibile per l'utilizzo, Kinesis Video Streams invia una notifica ai clienti utilizzando notifiche ( Amazon Simple Notification Service Amazon SNS). 

**Nota**  
Amazon Kinesis Video Streams utilizza Amazon SNS Standard Topics per la comunicazione. Gli argomenti FIFO non sono attualmente supportati.

I seguenti argomenti spiegano come iniziare a utilizzare le notifiche.

**Topics**
+ [Gestire le configurazioni delle notifiche](#manage-configurations)
+ [Informazioni sui tag MKV del produttore](#producer-mkv-tags)
+ [Messaggi Amazon SNS](#sns-messages)
+ [Pubblicazione di notifiche Amazon SNS su più account](#cross-account-sns)

## Gestire le configurazioni delle notifiche
<a name="manage-configurations"></a>

Per gestire le configurazioni delle notifiche, usa `UpdateNotificationConfiguration` e. `DescribeNotificationConfiguration` Per ulteriori informazioni, vedere di seguito.

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

Utilizza questa operazione API per aggiornare le informazioni di notifica per uno stream. Per ulteriori informazioni sulla `UpdateNotificationConfiguration` funzionalità, consulta [UpdateNotificationConfiguration ](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateNotificationConfiguration.html)la *Amazon Kinesis Video Streams* Developer Guide. **** 

**Nota**  
È necessario almeno un minuto per avviare la notifica dopo l'aggiornamento della configurazione della notifica. Attendi almeno un minuto prima di richiamare `PutMedia` dopo la chiamata di aggiornamento. 

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

Usa questa API per descrivere una configurazione di notifica allegata a uno stream. Per ulteriori informazioni sulla `DescribeNotificationConfiguration` funzionalità, consulta [DescribeNotificationConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeNotificationConfiguration.html)la *Amazon Kinesis Video Streams* Developer Guide. ****

## Informazioni sui tag MKV del produttore
<a name="producer-mkv-tags"></a>

 Puoi utilizzare l'SDK per produttori di Kinesis Video Streams per etichettare frammenti di interesse specifici esponendo un'operazione API nell'SDK. [Guarda un esempio di come funziona in questa sezione di codice.](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp#L404) Dopo aver chiamato questa API, l'SDK aggiungerà un set di tag MKV predefiniti insieme ai dati del frammento. Kinesis Video Streams riconoscerà questi tag MKV speciali e avvierà notifiche per i frammenti etichettati. 

Tutti i metadati dei frammenti forniti insieme ai tag MKV di notifica verranno pubblicati come parte del payload tematico di Amazon SNS.

### Sintassi per i tag MKV dei produttori
<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
```

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

La tabella seguente elenca le limitazioni associate ai tag di metadati. Se il limite dei tag di metadati è regolabile, puoi richiedere un aumento tramite il tuo account manager. 


| Limite | Valore massimo | Regolabile | 
| --- | --- | --- | 
|  Lunghezza della chiave dei metadati opzionale  |  128  |  No  | 
|  Lunghezza del valore dei metadati opzionale  |  256  |  No  | 
|  Numero massimo di metadati opzionali  |  10  |  Sì  | 

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

Questo argomento contiene ulteriori informazioni sui messaggi Amazon SNS e sui payload degli argomenti.

**Topics**
+ [Payload tematico Amazon SNS](#topic-payload)
+ [Visualizza i tuoi messaggi Amazon SNS](#viewing-messages)

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

Qualsiasi notifica avviata tramite il flusso di lavoro precedente fornirà il payload dell'argomento Amazon SNS, come illustrato nell'esempio seguente. Questo esempio è un messaggio Amazon SNS che si verifica dopo aver consumato i dati di notifica da una coda 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
    }
}
```

### Visualizza i tuoi messaggi Amazon SNS
<a name="viewing-messages"></a>

Non puoi leggere i messaggi direttamente da un argomento di Amazon SNS perché non esiste un'API per farlo. Per visualizzare i messaggi, iscriviti a una coda SQS all'argomento SNS o scegli qualsiasi altra destinazione supportata da [Amazon](https://docs.aws.amazon.com//sns/latest/dg/sns-event-destinations.html) SNS. Tuttavia, l'opzione più efficiente per visualizzare i messaggi è usare Amazon SQS. 

**Per visualizzare i tuoi messaggi Amazon SNS utilizzando Amazon SQS**

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

1. Da Console di gestione AWS, apri l'argomento Amazon SNS impostato come destinazione in. `NotificationConfiguration`

1. Scegli **Crea abbonamento**, quindi scegli la coda Amazon SQS creata nel primo passaggio.

1. Esegui una `PutMedia` sessione con la configurazione di notifica abilitata e con i tag MKV di notifica aggiunti ai frammenti.

1. Scegli la coda Amazon SQS nella console Amazon SQS, quindi seleziona **Invia e ricevi messaggi per la** coda Amazon SQS.

1. Sondaggio per i messaggi. Questo comando dovrebbe mostrare tutte le notifiche generate dalla `PutMedia` sessione. Per informazioni sul polling, consulta [Amazon SQS short and](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html) long polling.

## Pubblicazione di notifiche Amazon SNS su più account
<a name="cross-account-sns"></a>

Per pubblicare le notifiche di Amazon SNS su un argomento in un AWS account diverso, devi configurare policy basate sull'identità e sulle risorse. Questa configurazione consente a Kinesis Video Streams di pubblicare notifiche da un account a un argomento Amazon SNS in un altro account.

### Configurazione delle policy basata sull'identità
<a name="cross-account-identity-policy"></a>

Il ruolo o l'utente IAM che chiama l'`PutMedia`API deve disporre `sns:Publish` delle autorizzazioni per l'argomento Amazon SNS tra account. Aggiungi la seguente dichiarazione politica alla politica basata sull'identità:

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

------

### Configurazione delle politiche basata sulle risorse
<a name="cross-account-resource-policy"></a>

L'argomento Amazon SNS nell'account di destinazione deve avere una politica di accesso basata sulle risorse che consenta all'account di origine di pubblicare messaggi. Configura la policy di accesso agli argomenti di Amazon SNS come segue:

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

------

Sostituiscilo `<kvs_streams_account_id>` con l'ID dell' AWS account in cui si trovano i tuoi stream Kinesis Video Streams `<sns_topic_arn>` e con l'ARN del tuo argomento Amazon SNS.

### Requisiti e considerazioni
<a name="cross-account-requirements"></a>
+ Sia la politica basata sull'identità (nell'account di origine) che la politica basata sulle risorse (nell'account di destinazione) devono essere configurate affinché la pubblicazione su più account funzioni.
+ Il ruolo IAM utilizzato per `PutMedia` le operazioni deve includere le `sns:Publish` autorizzazioni, anche quando si utilizzano certificati IoT con alias di ruolo.