Tutorial: Almacenamiento de eventos de Azure Media Services en Azure Log Analytics
Eventos de Azure Media Services
Azure Media Services v3 emite eventos en Azure Event Grid. Puede suscribirse a los eventos de muchas maneras y almacenarlos en almacenes de datos. En este tutorial, se suscribirá a los eventos de Media Services mediante un flujo de Logic Apps. La instancia de Logic Apps se desencadenará para cada evento y almacenará el cuerpo del evento en Azure Log Analytics. Una vez que los eventos se encuentran en Azure Log Analytics, puede usar otros servicios de Azure para crear un panel, un monitor y una alerta de estos eventos, aunque no vamos a cubrir eso en este tutorial.
Nota
Resultaría útil si ya está familiarizado con el uso de FFmpeg como codificador en el entorno local. Si no lo está, está bien. A continuación se incluye la línea de comandos y las instrucciones para la transmisión de un vídeo.
Aprenderá a:
- Crear un flujo de Logic Apps sin código.
- Suscribirse a los temas de eventos de Media Services.
- Analizar eventos y almacenarlos en Azure Log Analytics.
- Consultar eventos de Azure Log Analytics.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Prerequisites
- Suscripción a Azure.
- Una cuenta y grupo de recursos de Media Services.
- Una instalación de FFmpeg para su sistema operativo.
- Un área de trabajo de Log Analytics
Suscripción a un evento de Media Services con una aplicación lógica
En Azure Portal, si aún no lo ha hecho, cree un área de trabajo de Log Analytics. Necesitará el id. del área de trabajo y una de las claves, por lo que debe mantener abierta la ventana del explorador. A continuación, abra el portal en otra pestaña o ventana.
Vaya a la cuenta de Azure Media Services y seleccione Eventos. Esto mostrará todos los métodos para suscribirse a los eventos de Azure Media Services.

Seleccione el icono de Logic Apps para crear una aplicación lógica. Se abrirá el diseñador de aplicación lógica, en el que podrá crear el flujo para capturar los eventos e incluirlos en Log Analytics.

Seleccione el icono + , seleccione el inquilino que quiere usar y, después, seleccione Iniciar sesión. Verá una solicitud de inicio de sesión de Microsoft.


Seleccione Continuar para suscribirse a los eventos de Media Services.

En la lista Tipo de recurso, busque "Microsoft.Media.MediaServices".

Seleccione el elemento Tipo de evento. Se mostrará una lista de todos los eventos que emite Azure Media Services. Puede seleccionar los eventos de los que quiere realizar un seguimiento. Puede agregar varios tipos de eventos. (Más adelante, realizará un pequeño cambio en el flujo de la aplicación lógica para almacenar cada tipo de evento en un registro de Log Analytics independiente y propagar el nombre del tipo de evento al nombre del registro de Log Analytics de forma dinámica).

Seleccione Guardar como.
Especifique un nombre para la aplicación lógica. De forma predeterminada, se selecciona el grupo de recursos. Deje las otras opciones de configuración como están y, a continuación, seleccione Crear. Volverá a la pantalla de inicio de Azure.

Creación de una acción
Ahora que está suscrito a los eventos, cree una acción.
Si el portal le ha devuelto a la pantalla principal, vuelva a la aplicación lógica que acaba de crear; para ello, busque en Todos los recursos el nombre de la aplicación.
Seleccione la aplicación y, a continuación, seleccione Diseñador de aplicación lógica. Se abrirá el panel del diseñador.
Seleccione + Nuevo paso.
Ya que quiere enviar los eventos al servicio Azure Log Analytics, busque "Azure Log Analytics" y seleccione "Azure Log Analytics Data Collector".

Para conectarse al área de trabajo de Log Analytics, necesita el id. del área de trabajo y una clave del agente. Abra Azure Portal en una nueva pestaña o ventana y navegue hasta el área de trabajo de Log Analytics que creó antes de iniciar este tutorial.

En el menú de la izquierda, busque Administración de agentes y seleccione esa opción. Esto le mostrará las claves del agente que se han generado.

Copie el identificador del área de trabajo.

En la otra pestaña o ventana del explorador, en Azure Log Analytics Data Collector, seleccione Enviar datos, asigne un nombre a la conexión y, a continuación, pegue el Id. del área de trabajo en el campo Id. del área de trabajo.
Vuelva a la pestaña o ventana del explorador correspondiente al área de trabajo y copie la Clave del área de trabajo.

En la otra pestaña o ventana del explorador, pegue la Clave del área de trabajo en el campo Clave del área de trabajo.
Seleccione Crear. Ahora creará el cuerpo de la solicitud JSON y el nombre del registro personalizado.
Seleccione el campo Cuerpo de la solicitud JSON. Aparecerá un vínculo para Agregar contenido dinámico.
Seleccione Agregar contenido dinámico y, a continuación, seleccione Tema.
Haga lo mismo para el Nombre de registro personalizado.

Seleccione la vista Código de la aplicación lógica. Busque las entradas y las líneas de tipo de registro.

Cambie el valor de
bodyde"@triggerBody()?['topic']"a"@{triggerBody()}". Esto permite analizar todo el mensaje para Log Analytics.Cambie el valor de
Log-Typede"@triggerBody()?['topic']"a"@replace(triggerBody()?['eventType'],'.','')". (Esto reemplazará los elementos ".", ya que no se permiten en los nombres de los registros de Log Analytics).
Seleccione Guardar.
Para comprobarlo, seleccione Diseñador de aplicación lógica.

Cuando examine todos los recursos del grupo de recursos, se enumerará una aplicación lógica y dos conectores de API de esta: uno para los eventos y otro para Log Analytics. Para obtener más información acerca de los temas del sistema de Event Grid, consulte losTemas del sistema en Event Grid.

Prueba
Para probar cómo funciona realmente, cree un evento en directo en Azure Media Services. Cree un evento en directo de RTMP y use FFmpeg para enviar una transmisión "directa" basada en un archivo .mp4 de ejemplo. Una vez creado el evento, obtenga la URL de introducción de RTMP.
En la cuenta de Media Services, seleccione Streaming en vivo.

Seleccione Agregar evento en directo.
Escriba un nombre en el campo Nombre del evento en directo. (El campo Descripción es opcional).
Seleccione la codificación en la nube Estándar.
Seleccione 720p predeterminado para el valor preestablecido de codificación.
Seleccione el protocolo de entrada RTMP.
Seleccione Sí para la dirección URL de entrada persistente.
Seleccione Sí para iniciar el evento cuando se cree.
Advertencia
La facturación se iniciará si selecciona la opción Sí. Si quiere esperar para iniciar la transmisión justo antes de que empiece a transmitir con FFmpeg, seleccione No y recuerde iniciar el evento en directo.

Seleccione la casilla Tengo todos los derechos para usar el contenido/archivo... .
Seleccione Revisar + crear.
Revise la configuración y seleccione Crear. Aparecerá la lista de eventos en directo y se mostrará la URL de introducción de eventos en directo.
Copie la URL de introducción en el Portapapeles.
Seleccione el evento en directo en la lista para ver la vista de productor.
Transmisión con la CLI de FFmpeg
Use la siguiente línea de comandos.
ffmpeg -i <localpathtovideo> -map 0 -c:v libx264 -c:a copy -f flv <ingestURL>/mystreamCambie
<ingestURL>por la URL de introducción que copió en el portapapeles.Cambie
<localpathtovideo>por la ruta de acceso local del archivo que quiere transmitir desde FFmpeg.Agregue un nombre único al final; por ejemplo,
mystream.Modifique la línea de comandos para que refleje el archivo de origen de prueba y cualquier otra variable del sistema.
Ejecute el comando. Después de unos segundos, el reproductor de la "vista de productor" debe iniciar la transmisión. (Actualice el reproductor si el vídeo no se muestra automáticamente).

Comprobación de los eventos
Con el streaming en vivo, Azure Media Services emite varios eventos que desencadenan el flujo de la aplicación lógica. Para comprobarlo, vaya a la aplicación lógica y determine si los eventos de Media Services han activado algún desencadenador.
Vaya a la página de información general de la aplicación lógica; se debería ver el "Historial de ejecución" con trabajos que se completaron correctamente.

Seleccione un trabajo realizado correctamente. Se muestran los detalles del trabajo durante el tiempo de ejecución.
Seleccione Enviar datos para expandirlo. En este caso, el evento
MicrosoftMediaLiveEventEncoderConnectedmuestra que se capturó, así como el cuerpo analizado. Esto es lo que se envía al área de trabajo de Azure Log Analytics.
Comprobación de los registros
Vaya al área de trabajo de Log Analytics que creó anteriormente.
Seleccione Registros.
Cierre el elemento emergente Consultas de ejemplo.
Se mostrará una lista de registros personalizados. Seleccione la flecha abajo para expandirla. Allí verá el nombre de evento
MicrosoftMediaLiveEventEncoderConnected.Seleccione el nombre del evento para expandirlo.
Al seleccionar el icono de ojo, se mostrará una vista previa del resultado de la consulta.
Seleccione Ver en el editor de consultas y, después, seleccione el elemento debajo de la lista TimeGenerated UTC para expandirlo y ver los datos sin procesar.

Eliminar recursos
Si no quiere seguir usando los recursos que creó en este tutorial, asegúrese de eliminarlos todos del grupo de recursos o se le seguirá cobrando.