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 un evento de Media Services con una aplicación lógica

  1. 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.

  2. 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.

    Azure Media Services Portal

  3. 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.

    Create Logic App

  4. 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.

    Connect to Azure Event GridSelect the tenant

  5. Seleccione Continuar para suscribirse a los eventos de Media Services.

    Connected to Azure Event Grid

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

    Azure Media Services Resource Events

  7. 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).

    Azure Media Services Event Type

  8. Seleccione Guardar como.

  9. 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.

    Logic app naming interface

Creación de una acción

Ahora que está suscrito a los eventos, cree una acción.

  1. 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.

  2. Seleccione la aplicación y, a continuación, seleccione Diseñador de aplicación lógica. Se abrirá el panel del diseñador.

  3. Seleccione + Nuevo paso.

  4. Ya que quiere enviar los eventos al servicio Azure Log Analytics, busque "Azure Log Analytics" y seleccione "Azure Log Analytics Data Collector".

    Azure Log Analytics Data Collector

  5. 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.

    Azure Log Analytics Workspace ID

  6. 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.

    Azure Log Analytics Agents management

  7. Copie el identificador del área de trabajo.

    Copy Workspace ID

  8. 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.

  9. Vuelva a la pestaña o ventana del explorador correspondiente al área de trabajo y copie la Clave del área de trabajo.

    Agents management primary key

  10. En la otra pestaña o ventana del explorador, pegue la Clave del área de trabajo en el campo Clave del área de trabajo.

  11. Seleccione Crear. Ahora creará el cuerpo de la solicitud JSON y el nombre del registro personalizado.

  12. Seleccione el campo Cuerpo de la solicitud JSON. Aparecerá un vínculo para Agregar contenido dinámico.

  13. Seleccione Agregar contenido dinámico y, a continuación, seleccione Tema.

  14. Haga lo mismo para el Nombre de registro personalizado.

    Topic selected

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

    Code view of two lines

  16. Cambie el valor de body de "@triggerBody()?['topic']" a "@{triggerBody()}". Esto permite analizar todo el mensaje para Log Analytics.

  17. Cambie el valor de Log-Type de "@triggerBody()?['topic']" a "@replace(triggerBody()?['eventType'],'.','')". (Esto reemplazará los elementos ".", ya que no se permiten en los nombres de los registros de Log Analytics).

    Logic App json after change

  18. Seleccione Guardar.

  19. Para comprobarlo, seleccione Diseñador de aplicación lógica.

    Verify Body and Function steps

  20. 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.

    See all new resources in Resource Group

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.

  1. En la cuenta de Media Services, seleccione Streaming en vivo.

    Create an Azure Media Services Live Event

  2. Seleccione Agregar evento en directo.

  3. Escriba un nombre en el campo Nombre del evento en directo. (El campo Descripción es opcional).

  4. Seleccione la codificación en la nube Estándar.

  5. Seleccione 720p predeterminado para el valor preestablecido de codificación.

  6. Seleccione el protocolo de entrada RTMP.

  7. Seleccione para la dirección URL de entrada persistente.

  8. Seleccione 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.

    Live event settings

  9. Seleccione la casilla Tengo todos los derechos para usar el contenido/archivo... .

  10. Seleccione Revisar + crear.

  11. 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.

  12. Copie la URL de introducción en el Portapapeles.

  13. Seleccione el evento en directo en la lista para ver la vista de productor.

Transmisión con la CLI de FFmpeg

  1. Use la siguiente línea de comandos.

    ffmpeg -i <localpathtovideo> -map 0 -c:v libx264 -c:a copy -f flv <ingestURL>/mystream
    
  2. Cambie <ingestURL> por la URL de introducción que copió en el portapapeles.

  3. Cambie <localpathtovideo> por la ruta de acceso local del archivo que quiere transmitir desde FFmpeg.

  4. Agregue un nombre único al final; por ejemplo, mystream.

  5. Modifique la línea de comandos para que refleje el archivo de origen de prueba y cualquier otra variable del sistema.

  6. 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).

    Verify proper video ingest in Producer Preview Player

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.

  1. 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.

    Verify successful job execution in Logic App

  2. Seleccione un trabajo realizado correctamente. Se muestran los detalles del trabajo durante el tiempo de ejecución.

  3. Seleccione Enviar datos para expandirlo. En este caso, el evento MicrosoftMediaLiveEventEncoderConnected muestra que se capturó, así como el cuerpo analizado. Esto es lo que se envía al área de trabajo de Azure Log Analytics.

    See send data

Comprobación de los registros

  1. Vaya al área de trabajo de Log Analytics que creó anteriormente.

  2. Seleccione Registros.

  3. Cierre el elemento emergente Consultas de ejemplo.

  4. Se mostrará una lista de registros personalizados. Seleccione la flecha abajo para expandirla. Allí verá el nombre de evento MicrosoftMediaLiveEventEncoderConnected.

  5. Seleccione el nombre del evento para expandirlo.

  6. Al seleccionar el icono de ojo, se mostrará una vista previa del resultado de la consulta.

  7. 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.

See detailed Event output in Log Analytics

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.