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.
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
Una cuenta y una suscripción de Azure. Si no tiene una suscripción de Azure, regístrese para obtener una cuenta gratuita de Azure.
Una cuenta de correo electrónico de un servicio de correo electrónico que funcione con Azure Logic Apps para enviar notificaciones, como Office 365 Outlook, Outlook.com o Gmail. En el caso de otros proveedores, consulte la lista de conectores que se muestra aquí.
Este tutorial utiliza una cuenta de Office 365 Outlook. Si utiliza una cuenta de correo electrónico diferente, los pasos generales siguen siendo los mismos pero la interfaz de usuario podría ser ligeramente distinta.
Importante
Si quiere usar el conector de Gmail, solo las cuentas empresariales de G-Suite pueden usar este conector sin restricciones en las aplicaciones lógicas. Si tiene una cuenta de consumidor de Gmail, puede usar este conector solo con servicios específicos aprobados por Google, o puede crear una aplicación cliente de Google para usarla en la autenticación con el conector de Gmail. Para más información, consulte Directivas de privacidad y seguridad de datos de los conectores de Google en Azure Logic Apps.
Una máquina virtual sola en su grupo de recursos de Azure. Si aún no lo ha hecho, cree una máquina virtual siguiendo un tutorial para crear una máquina virtual. Para hacer que la máquina virtual publique eventos, no es necesario hacer nada más.
Si tiene un firewall que limita el tráfico a direcciones IP específicas, debe configurarlo para permitir que Azure Logic Apps tenga acceso y pueda comunicarse a través del firewall. Debe permitir el acceso a las direcciones IP entrantes y salientes que usa Azure Logic Apps en la región de Azure donde se crea la aplicación lógica.
En este ejemplo se usan conectores administrados que requieren que el firewall permita el acceso a todas las direcciones IP de salida del conector administrado en la región de Azure del recurso de aplicación lógica.
Creación de un recurso de aplicación lógica
Inicie sesión en Azure Portal con su cuenta de Azure.
En la página principal de Azure, seleccione Crear un recurso>Integración>Aplicación lógica.
En Crear aplicación lógica, proporcione información acerca del recurso de aplicación lógica:
Propiedad Necesario Valor Descripción Suscripción Sí <Azure-subscription-name> Seleccione la misma suscripción de Azure para todos los servicios de este tutorial. Grupo de recursos Sí <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 Sí <nombre-de-la-aplicación-lógica> Proporcione un nombre único para la aplicación lógica. Publicar Sí 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 Sí <Azure-region> Seleccione la misma región para todos los servicios de este tutorial. Tipo de plan Sí 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 multiinquilino frente a Azure Logic Apps de un solo inquilino, consulte Inquilino único frente a multiinquilino.
Seleccione Revisar y crear cuando haya terminado. En el panel siguiente, confirme la información proporcionada y seleccione Crear.
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.
Desplácese más allá de la ventana de vídeo y la sección desencadenadores que se usan habitualmente.
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.
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.
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.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:
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.
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:
Propiedad Necesario Valor Descripción Suscripción Sí <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 Sí <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 Sí <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 GridPara 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.
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.
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.
En el diseñador de flujo de trabajo, en el desencadenador de Azure Event Grid, seleccione Nuevo paso.
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.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.
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.Cree una condición que comprueba el evento
body
de un objetodata
donde la propiedadoperationName
es igual a la operaciónMicrosoft.Compute/virtualMachines/write
. Más información sobre el Esquema de eventos de Azure Event Grid.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.
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:
En el cuadro central, mantenga el operador es igual que.
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:
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:
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.
En el cuadro If true de la condición, seleccione Agregar una acción.
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.
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.
Cambie el nombre de la acción del correo electrónico de envío por este título:
Send email when virtual machine updated
Proporcione información sobre el correo electrónico como se especifica en la tabla siguiente:
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 Sí <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 Sí Resource updated:
AsuntoEscriba 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 Sí Resource:
TemaEvent type:
Tipo de eventoEvent ID:
IDTime:
Hora del eventoEscriba 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:
Y el flujo de trabajo de la aplicación lógica terminado podría parecerse al siguiente ejemplo:
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
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:
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.
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.
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.
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.