Tutorial: Supervisión de los cambios en las máquinas virtuales con Azure Event Grid y Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo)

Con Azure Event Grid y Azure Logic Apps, puede supervisar y responder a eventos específicos que se producen en recursos externos o de Azure. Puede crear un flujo de trabajo de aplicación lógica de consumo automatizado con código mínimo mediante Azure Logic Apps. Estos recursos pueden publicar eventos en Azure Event Grid. A su vez, Azure Event Grid envía esos eventos a los suscriptores que tienen colas, webhooks o centros de eventos como puntos de conexión. Como suscriptor, su flujo de trabajo espera a que estos eventos lleguen a Azure Event Grid antes de ejecutar los pasos para procesarlos.

Por ejemplo, aquí incluimos algunos eventos que los publicadores pueden enviar a los suscriptores a través de Azure Event Grid:

  • Crear, leer, actualizar o eliminar un recurso. Por ejemplo, puede supervisar los cambios que podrían incurrir en gastos en su suscripción de Azure y afectar a la facturación.

  • Agregar o quitar a una persona de una suscripción de Azure.

  • La aplicación realiza una acción concreta.

  • Aparece un nuevo mensaje en una cola.

En este tutorial se crea un recurso de aplicación lógica de Consumo que se ejecuta en entornos multiinquilino de Azure Logic Apps y que se basa en el modelo de precios Consumo. Con este recurso de aplicación lógica, se crea un flujo de trabajo que supervisa los cambios en una máquina virtual y envía correos electrónicos sobre esos cambios. Cuando crea un flujo de trabajo con una suscripción a eventos de un recurso de Azure, los eventos fluyen desde ese recurso a través de Azure Event Grid al flujo de trabajo.

Screenshot showing the workflow designer with a workflow that monitors a virtual machine using Azure Event Grid.

En este tutorial, aprenderá a:

  • Crear un recurso y flujo de trabajo de una aplicación lógica que supervisa eventos procedentes de Azure Event Grid.
  • Incorporar una condición que comprueba específicamente cambios en la máquina virtual.
  • Enviar un mensaje de correo electrónico cuando la máquina virtual cambia.

Prerrequisitos

Creación de un recurso de aplicación lógica

  1. Inicie sesión en Azure Portal con su cuenta de Azure.

  2. En la página principal de Azure, seleccione Crear un recurso>Integración>Aplicación lógica.

    Screenshot of Azure portal, showing button to create a logic app resource.

  3. En Crear aplicación lógica, proporcione información acerca del recurso de aplicación lógica:

    Screenshot of logic apps creation menu, showing details like name, subscription, resource group, and location.

    Propiedad Necesario Valor Descripción
    Suscripción <Azure-subscription-name> Seleccione la misma suscripción de Azure para todos los servicios de este tutorial.
    Grupo de recursos <Azure-resource-group> Nombre del grupo de recursos de Azure para la aplicación lógica, que puede seleccionar para todos los servicios de este tutorial.
    Nombre de la aplicación lógica <nombre-de-la-aplicación-lógica> Proporcione un nombre único para la aplicación lógica.
    Publicar Flujo de trabajo Seleccione el destino de implementación de la aplicación lógica. En este tutorial, asegúrese de seleccionar Flujo de trabajo, el cual se implementa en Azure.
    Región <Azure-region> Seleccione la misma región para todos los servicios de este tutorial.
    Tipo de plan Consumo Tipo de recurso de la aplicación lógica. En este tutorial, asegúrese de seleccionar Consumo.

    Nota:

    Si más adelante desea usar las operaciones Azure Event Grid con un recurso de aplicación lógica estándar en su lugar, asegúrese de crear un flujo de trabajo con estado, no un flujo de trabajo sin estado. Este tutorial solo es pertinente para las aplicaciones lógicas de consumo, que siguen una experiencia de usuario diferente. Para agregar operaciones de Azure Event Grid al flujo de trabajo en el diseñador, en el panel del selector de operaciones, asegúrese de seleccionar la pestaña Azure. Para más información sobre el entorno multiinquilino frente al de inquilino único de Azure Logic Apps, consulte Inquilino único (versión preliminar) frente a multiinquilino y entorno del servicio de integración para Azure Logic Apps.

  4. Seleccione Revisar y crear cuando haya terminado. En el panel siguiente, confirme la información proporcionada y seleccione Crear.

  5. Una vez que Azure implemente la aplicación lógica, seleccione Ir al recurso.

    El diseñador del flujo de trabajo muestra una página con un vídeo de introducción y desencadenadores utilizados frecuentemente.

  6. Desplácese más allá de la ventana de vídeo y la sección desencadenadores que se usan habitualmente.

  7. En Plantillas, elija Blank Logic App.

    Nota:

    La galería de plantillas de flujo de trabajo solo está disponible para aplicaciones lógicas de consumo, no para aplicaciones lógicas estándar.

    Screenshot showing Azure Logic Apps templates with selected

    El diseñador de flujos de trabajo ahora muestra los desencadenadores que puede usar para iniciar la aplicación lógica. Todo flujo de trabajo debe comenzar con un desencadenador, que se activa cuando sucede un evento específico o cuando se cumple una condición determinada. Cada vez que el desencadenador se activa, Azure Logic Apps crea una instancia de flujo de trabajo que ejecuta la aplicación lógica.

Seleccione un desencadenador de Azure Event Grid

Ahora, agregue el desencadenador de Azure Event Grid que usa para supervisar el grupo de recursos de la máquina virtual.

  1. En el cuadro de búsqueda del diseñador, escriba event grid. En la lista de desencadenadores, seleccione el desencadenador Cuando se produce un evento de recursos.

    Screenshot that shows the workflow designer with the selected Azure Event Grid trigger.

  2. Cuando se le solicite, inicie sesión en Azure Event Grid con las credenciales de la cuenta de Azure. En la lista Inquilino, que muestra el inquilino de Microsoft Entra asociado con la suscripción de Azure, compruebe que aparece al inquilino correcto, por ejemplo:

    Screenshot that shows the workflow designer with the Azure sign-in prompt to connect to Azure Event Grid.

    Nota:

    Si inició sesión con una cuenta personal de Microsoft, como @outlook.com o @hotmail.com, el desencadenador de Azure Event Grid podría no aparecer correctamente. Como alternativa, seleccione Conectar con entidad de servicio o autentíquese como miembro de Microsoft Entra asociado con la suscripción de Azure, por ejemplo, nombre-de-usuario@emailoutlook.onmicrosoft.com.

  3. Ahora suscriba la aplicación lógica a los eventos del publicador. Proporcione los detalles de la suscripción a eventos como se describe en la tabla siguiente, por ejemplo:

    Screenshot that shows the workflow designer with the trigger details editor open.

    Propiedad Necesario Valor Descripción
    Suscripción <event-publisher-Azure-subscription-name> Seleccione el nombre de la suscripción de Azure asociada con el publicador de eventos. Para este tutorial, seleccione el nombre de la suscripción de Azure de la máquina virtual.
    Tipo de recurso <event-publisher-Azure-resource-type> Seleccione el tipo de recurso de Azure para el publicador de eventos. Para más información sobre los tipos de recursos de Azure, consulte Tipos y proveedores de recursos de Azure. Para este tutorial, seleccione el valor Microsoft.Resources.ResourceGroups para supervisar los grupos de recursos de Azure.
    Nombre de recurso <event-publisher-Azure-resource-name> Seleccione el nombre de recurso de Azure para el publicador de eventos. Esta lista varía según el tipo de recurso que ha seleccionado. Para este tutorial, seleccione el nombre del grupo de recursos de Azure que incluye la máquina virtual.
    Elemento de tipo de evento No <event-types> Seleccione uno o varios tipos de evento específicos para filtrar y enviar a Azure Event Grid. Por ejemplo, si lo desea puede agregar estos tipos de eventos para detectar cuándo se cambian o eliminan los recursos:

    - Microsoft.Resources.ResourceActionSuccess
    - Microsoft.Resources.ResourceDeleteSuccess
    - Microsoft.Resources.ResourceWriteSuccess

    Para más información, consulte los temas siguientes:

    - Esquema de eventos de Azure Event Grid para grupos de recursos
    - Descripción del filtrado de eventos
    - Filtrado de eventos para Azure Event Grid

    Para agregar propiedades opcionales, seleccione Agregar nuevo parámetro y seleccione las propiedades que desee. No {ver descripciones} * Filtro de prefijo: En este tutorial, deje esta propiedad vacía. El comportamiento predeterminado coincide con todos los valores. Sin embargo, puede especificar una cadena de prefijo como un filtro, por ejemplo, una ruta de acceso y un parámetro para un recurso concreto.

    * Filtro de sufijo: En este tutorial, deje esta propiedad vacía. El comportamiento predeterminado coincide con todos los valores. Sin embargo, puede especificar una cadena de sufijo como un filtro, por ejemplo, una extensión de nombre de archivo, si desea solo determinados tipos de archivos.

    * Nombre de la suscripción: Para este tutorial puede proporcionar un nombre único para la suscripción a eventos.

  4. Guarde el flujo de trabajo de la aplicación lógica. En la barra de herramientas del diseñador, seleccione Save (Guardar). Para contraer y ocultar los detalles de una acción en el flujo de trabajo, seleccione la barra de título de la acción.

    Screenshot that shows the workflow designer and the

    Cuando se guarda el flujo de trabajo de la aplicación lógica con un desencadenador de Azure Event Grid, Azure crea automáticamente una suscripción a eventos para la aplicación lógica en el recurso seleccionado. Así, cuando el recurso publica un evento en el servicio Azure Event Grid, este inserta automáticamente el evento en la aplicación lógica. Este evento desencadena y ejecuta el flujo de trabajo de la aplicación lógica que se define en los siguientes pasos.

La aplicación lógica ahora está activa y escucha los eventos de Azure Event Grid, pero no hace nada hasta que agregue acciones al flujo de trabajo.

Agregar una condición

Si desea ejecutar el flujo de trabajo de la aplicación lógica solo cuando se produzca un evento u operación específicos, agregue una condición que compruebe la operación Microsoft.Compute/virtualMachines/write. Cuando esta condición se cumpla, el flujo de trabajo de la aplicación lógica le enviará un mensaje de correo electrónico con detalles acerca de la máquina virtual actualizada.

  1. En el diseñador de flujo de trabajo, en el desencadenador de Azure Event Grid, seleccione Nuevo paso.

    Screenshot that shows the workflow designer with

  2. En Elegir una acción, en el cuadro de búsqueda, escriba condition como filtro. En la lista Acciones, seleccione la acción Condición.

    Screenshot that shows the workflow designer with

    El diseñador del flujo de trabajo agrega una condición vacía al flujo de trabajo, incluidas las rutas de acceso de la acción que se deben seguir en función de si la condición se cumple o no.

    Screenshot that shows the workflow designer with an empty condition added to the workflow.

  3. Cambie el nombre del título de la condición a If a virtual machine in your resource group has changed. En la barra de título de la condición, seleccione el botón de los puntos suspensivos ( ... ) y Cambiar nombre.

    Screenshot that shows the workflow designer with the condition editor's context menu and

  4. Cree una condición que comprueba el evento body de un objeto data donde la propiedad operationName es igual a la operación Microsoft.Compute/virtualMachines/write. Más información sobre el Esquema de eventos de Azure Event Grid.

    1. En la primera fila, debajo de And, haga clic en el cuadro izquierdo. En la lista de contenido dinámico que aparece, seleccione Expresión.

      Screenshot that shows the workflow designer with the condition action and dynamic content list open with

    2. En el editor de expresiones, escriba esta expresión, que devuelve el nombre de la operación del desencadenador, y seleccione Aceptar:

      triggerBody()?['data']['operationName']

      Por ejemplo:

      Screenshot showing workflow designer and condition editor with expression to extract the operation name.

    3. En el cuadro central, mantenga el operador es igual que.

    4. En el cuadro derecho, escriba la operación que desea supervisar, que es el valor siguiente para este ejemplo:

      Microsoft.Compute/virtualMachines/write

    Ahora, la condición finalizada se parecerá a este ejemplo:

    Screenshot that shows the workflow designer with a condition that compares the operation.

    Si cambia de la vista de diseño a la vista de código y vuelve a la vista de diseño, la expresión que especificó en la condición se resuelve en el token data.operationName:

    Screenshot that shows the workflow designer with a condition that has resolved tokens.

  5. Guarde la aplicación lógica.

Envío de notificaciones por correo electrónico

Ahora, agregue una acción para poder recibir un mensaje de correo electrónico cuando se cumpla la condición especificada.

  1. En el cuadro If true de la condición, seleccione Agregar una acción.

    Screenshot that shows the workflow designer with the condition's

  2. En Elegir una acción, en el cuadro de búsqueda, escriba send an email como filtro. En función de su proveedor de correo electrónico, busque y seleccione el conector correspondiente. A continuación, seleccione la acción "enviar correo electrónico" para el conector. Por ejemplo:

    • Para una cuenta profesional o educativa de Azure, seleccione el conector de Office 365 Outlook.

    • Para las cuentas de Microsoft personales, seleccione el conector de Outlook.com.

    • Para las cuentas de Gmail, seleccione el conector de Gmail.

    Este tutorial continúa con el conector de Office 365 Outlook. Si utiliza un proveedor diferente, los pasos siguen siendo los mismos, pero la interfaz de usuario podría ser ligeramente diferente.

    Screenshot that shows the workflow designer with the search box open to find the

  3. Si ya no tiene una conexión para el proveedor de correo electrónico, inicie sesión en su cuenta de correo electrónico cuando se le pida que se autentique.

  4. Cambie el nombre de la acción del correo electrónico de envío por este título: Send email when virtual machine updated

  5. Proporcione información sobre el correo electrónico como se especifica en la tabla siguiente:

    Screenshot that shows the workflow designer with dynamic content being addded to email subject line for a true condition.

    Sugerencia

    Para seleccionar salidas de los pasos anteriores del flujo de trabajo, haga clic en un cuadro de edición para que aparezca la lista de contenido dinámico o seleccione Agregar contenido dinámico. Para más resultados, seleccione Ver más para cada sección de la lista. Para cerrar la lista de contenido dinámico, seleccione Agregar contenido dinámico de nuevo.

    Propiedad Necesario Valor Descripción
    To <recipient@domain> Escriba la dirección de correo electrónico del destinatario. Para realizar pruebas, puede usar su propia dirección de correo electrónico.
    Subject Resource updated:Subject (Asunto) Escriba el contenido del asunto del correo electrónico. Para este tutorial, escriba el texto especificado y seleccione el campo Asunto del evento. En este caso, el asunto del correo electrónico incluye el nombre del recurso actualizado (máquina virtual).
    Cuerpo Resource:Tema

    Event type:Tipo de evento

    Event ID:ID

    Time:Hora del evento

    Escriba el contenido del cuerpo del correo electrónico. Para este tutorial, escriba el texto especificado y seleccione los campos Tema, Tipo de evento, ID y Hora del evento del evento para que el correo electrónico incluya el recurso que desencadenó el evento, el tipo de evento, la marca de tiempo del evento y el identificador del evento de la actualización. Para este tutorial, el recurso es el grupo de recursos de Azure seleccionado en el desencadenador.

    Para agregar líneas en blanco en el contenido, presione MAYÚS + ENTRAR.

    Nota

    Si selecciona un campo que representa una matriz, el diseñador agrega automáticamente un bucle For each alrededor de la acción que haga referencia a la matriz. De este modo, el flujo de trabajo de la aplicación lógica lleva a cabo la acción en cada elemento de la matriz.

    Ahora, la acción de correo electrónico podría parecerse a este ejemplo:

    Screenshot that shows the workflow designer with selected outputs to send in email when VM is updated.

    Y el flujo de trabajo de la aplicación lógica terminado podría parecerse al siguiente ejemplo:

    Screenshot showing designer with complete workflow and details for trigger and actions.

  6. Guarde la aplicación lógica. Para contraer y ocultar los detalles de cada acción en la aplicación lógica, seleccione la barra de título de la acción.

    La aplicación lógica ahora está activa, pero espera a que haya cambios en la máquina virtual antes de hacer algo. Para probar el flujo de trabajo ahora, pase a la sección siguiente.

Comprobación del flujo de trabajo de la aplicación lógica

  1. Para comprobar que el flujo de trabajo recibe los eventos especificados, actualice la máquina virtual.

    Por ejemplo, puede cambiar el tamaño de la máquina virtual.

    Transcurridos unos instantes, debería recibir un correo electrónico. Por ejemplo:

    Screenshot of example Outlook email, showing details about VM update.

  2. Para revisar el historial de ejecución y desencadenamiento de la aplicación lógica, en el menú de la aplicación lógica, elija Información general. Para ver más detalles acerca de una ejecución, seleccione la fila correspondiente a esa ejecución.

    Screenshot of logic app's overview page, showing a successful run selected.

  3. Para ver las entradas y salidas de cada paso, expanda el paso que desea revisar. Esta información puede ayudarle a diagnosticar y depurar los problemas de la aplicación lógica.

    Screenshot of logic app's runs history, showing details for each run.

Enhorabuena, ha creado y ejecutado un flujo de trabajo de una aplicación lógica que supervisa los eventos del recurso mediante una Azure Event Grid y le envía por correo electrónico un mensaje cuando se producen esos eventos. También ha aprendido cómo puede crear fácilmente flujos de trabajo que automatizan los procesos y a integrar sistemas y servicios en la nube.

Puede supervisar otros cambios de configuración con las cuadrículas de eventos y las aplicaciones lógicas, por ejemplo:

  • Una máquina virtual obtiene derechos del control de acceso basado en roles de Azure (RBAC de Azure).
  • Se realizan cambios en un grupo de seguridad de red (NSG) en una interfaz de red (NIC).
  • Los discos para una máquina virtual se agregan o se quitan.
  • Se asigna una dirección IP pública a una máquina virtual de NIC.

Limpieza de recursos

Este tutorial utiliza recursos y realiza acciones que generan gastos en su suscripción de Azure. Cuando haya terminado con el tutorial y las pruebas, asegúrese de deshabilitar o eliminar todos los recursos si no desea que generen gastos.

  • Para detener la ejecución del flujo de trabajo sin eliminar el trabajo, deshabilíte la aplicación. En el menú de la aplicación lógica, seleccione Introducción. En la barra de herramientas, seleccione Deshabilitar.

    Screenshot of logic app's overview, showing Disable button selected to disable the logic app.

    Sugerencia

    Si no ve el menú de la aplicación lógica, intente volver al panel de Azure y vuelva a abrir la aplicación lógica.

  • Para eliminar la aplicación lógica de forma definitiva, en el menú de la aplicación lógica, seleccione Información general. En la barra de herramientas, seleccione Eliminar. Confirme que quiere eliminar la aplicación lógica y seleccione Eliminar.

Pasos siguientes

Consulte los ejemplos siguientes para obtener información sobre la publicación y el consumo de eventos desde Azure Event Grid con diferentes lenguajes de programación.