

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configurar notificaciones en Kinesis Video Streams
<a name="notifications"></a>

Cuando un fragmento multimedia está disponible para su consumo, Kinesis Video Streams notifica a los clientes Amazon Simple Notification Service mediante notificaciones (Amazon SNS). 

**nota**  
Amazon Kinesis Video Streams utiliza Amazon SNS Standard Topics para la comunicación. Los temas de FIFO no se admiten actualmente.

En los temas siguientes se explica cómo empezar a utilizar las notificaciones.

**Topics**
+ [Administra las configuraciones de notificaciones](#manage-configurations)
+ [Acerca de las etiquetas MKV del productor](#producer-mkv-tags)
+ [Mensajes de Amazon SNS](#sns-messages)
+ [Publicación de notificaciones de Amazon SNS multicuenta](#cross-account-sns)

## Administra las configuraciones de notificaciones
<a name="manage-configurations"></a>

Para gestionar las configuraciones de notificaciones, utilice `UpdateNotificationConfiguration` y`DescribeNotificationConfiguration`. Para obtener más información, consulte las secciones siguientes.

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

Utilice esta operación de API para actualizar la información de notificación de una transmisión. Para obtener más información sobre la `UpdateNotificationConfiguration` función, consulte [UpdateNotificationConfiguration ](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateNotificationConfiguration.html)la Guía para *desarrolladores de Amazon Kinesis Video Streams*. **** 

**nota**  
Tras actualizar la configuración de la notificación, se tarda al menos un minuto en iniciar la notificación. Espere al menos un minuto antes de realizar la `PutMedia` llamada de actualización. 

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

Usa esta API para describir una configuración de notificaciones adjunta a una transmisión. Para obtener más información sobre la `DescribeNotificationConfiguration` función, consulte [DescribeNotificationConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeNotificationConfiguration.html)la Guía para *desarrolladores de Amazon Kinesis Video Streams*. ****

## Acerca de las etiquetas MKV del productor
<a name="producer-mkv-tags"></a>

 Puede usar el SDK para productores de Kinesis Video Streams para etiquetar fragmentos específicos de interés exponiendo una operación de API en el SDK. Consulte un ejemplo de cómo funciona esto [en esta sección del código](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp#L404). Al llamar a esta API, el SDK añadirá un conjunto de etiquetas MKV predefinidas junto con los datos del fragmento. Kinesis Video Streams reconocerá estas etiquetas MKV especiales e iniciará notificaciones para los fragmentos etiquetados. 

Todos los metadatos de fragmentos proporcionados junto con las etiquetas MKV de notificación se publicarán como parte de la carga útil del tema Amazon SNS.

### Sintaxis de las etiquetas MKV de los productores
<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
```

### Límites de etiquetas MKV
<a name="mkv-tag-limits"></a>

En la siguiente tabla se enumeran las limitaciones asociadas a las etiquetas de metadatos. Si el límite de etiquetas de metadatos es ajustable, puedes solicitar un aumento a través de tu administrador de cuentas. 


| Límite | Valor máximo | Ajustable | 
| --- | --- | --- | 
|  Longitud de clave de metadatos opcional  |  128  |  No  | 
|  Longitud del valor de los metadatos opcional  |  256  |  No  | 
|  Número máximo de metadatos opcionales  |  10  |  Sí  | 

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

Este tema contiene más información sobre los mensajes de Amazon SNS y las cargas útiles de los temas.

**Topics**
+ [Carga útil del tema Amazon SNS](#topic-payload)
+ [Ver tus mensajes de Amazon SNS](#viewing-messages)

### Carga útil del tema Amazon SNS
<a name="topic-payload"></a>

Cualquier notificación iniciada a través del flujo de trabajo anterior entregará la carga útil del tema de Amazon SNS, como se muestra en el siguiente ejemplo. Este ejemplo es un mensaje de Amazon SNS que se produce después de consumir los datos de notificación de una cola 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
    }
}
```

### Ver tus mensajes de Amazon SNS
<a name="viewing-messages"></a>

No puedes leer los mensajes directamente de un tema de Amazon SNS porque no hay una API para hacerlo. Para ver los mensajes, suscriba una cola de SQS al tema de SNS o elija cualquier otro destino compatible con [Amazon](https://docs.aws.amazon.com//sns/latest/dg/sns-event-destinations.html) SNS. Sin embargo, la opción más eficaz para ver los mensajes es utilizar Amazon SQS. 

**Para ver sus mensajes de Amazon SNS mediante Amazon SQS**

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

1. Desde Consola de administración de AWS, abre el tema Amazon SNS establecido como destino en. `NotificationConfiguration`

1. Elija **Create Subscription** y, a continuación, elija la cola de Amazon SQS creada en el primer paso.

1. Ejecute una `PutMedia` sesión con la configuración de notificaciones habilitada y con las etiquetas MKV de notificación añadidas a los fragmentos.

1. Elija la cola de Amazon SQS en la consola de Amazon SQS y, a continuación, seleccione **Enviar y recibir mensajes para la** cola de Amazon SQS.

1. Busca mensajes. Este comando debería mostrar todas las notificaciones generadas por la `PutMedia` sesión. Para obtener información sobre las votaciones, consulte Sondeos [cortos y largos de Amazon SQS](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html).

## Publicación de notificaciones de Amazon SNS multicuenta
<a name="cross-account-sns"></a>

Para publicar notificaciones de Amazon SNS en un tema de otra AWS cuenta, debe configurar políticas basadas en la identidad y en los recursos. Esta configuración permite a Kinesis Video Streams publicar notificaciones de una cuenta en un tema de Amazon SNS de otra cuenta.

### Configuración de políticas basada en la identidad
<a name="cross-account-identity-policy"></a>

El rol o usuario de IAM que llama a la `PutMedia` API debe tener `sns:Publish` permisos para el tema multicuenta de Amazon SNS. Añada la siguiente declaración de política a la política basada en la identidad:

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

------

### Configuración de políticas basada en recursos
<a name="cross-account-resource-policy"></a>

El tema Amazon SNS de la cuenta de destino debe tener una política de acceso basada en recursos que permita a la cuenta de origen publicar mensajes. Configure la política de acceso a los temas de Amazon SNS de la siguiente manera:

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

------

`<kvs_streams_account_id>`Sustitúyalo por el ID de AWS cuenta en el que se encuentran las transmisiones de Kinesis Video Streams `<sns_topic_arn>` y por el ARN de su tema de Amazon SNS.

### Requisitos y consideraciones
<a name="cross-account-requirements"></a>
+ Tanto la política basada en la identidad (en la cuenta de origen) como la política basada en los recursos (en la cuenta de destino) deben estar configuradas para que la publicación multicuenta funcione.
+ El rol de IAM utilizado para `PutMedia` las operaciones debe incluir `sns:Publish` permisos, incluso cuando se utilizan certificados de IoT con alias de rol.