Aplicaciones sin Servidor
13 septiembre, 2021
El auge de la IA en el sector del Transporte y la Logística
14 octubre, 2021

Fundamentos y ejemplos

En este post se explica qué es una Logic App y cómo desarrollar una desde el portal de Azure y la CLI.

Terminología

Los términos siguientes son conceptos utilizados durante el post.

Aplicación lógica – Es un recurso de Azure.

Flujo de trabajo – Es una serie de pasos que definen una tarea o un proceso. Cada flujo de trabajo comienza con un único desencadenador y le siguen una o varias acciones.

Desencadenador – Es siempre el primer paso de cualquier flujo de trabajo, es único en cada flujo de trabajo y especifica la condición para ejecutar los demás pasos de ese flujo de trabajo. Por ejemplo, un timer trigger.

Acción – Es cada paso de un flujo de trabajo después del desencadenador. Cada acción ejecuta alguna operación en un flujo de trabajo. Por ejemplo, pasar a json un xml.

Conectores administrados – Es un contenedor precompilado que se puede usar para acceder a una aplicación, datos, un servicio o un sistema específicos. Para crear la mayoría de los conectores administrados, primero se debe crear una conexión desde el flujo de trabajo y autenticar su identidad. Microsoft se encarga de publicar, hospedar y administrar los conectores administrados. Por ejemplo, Outlook.

¿Qué es una Azure Logic App?

Es un servicio en la nube que le ayuda a crear y ejecutar flujos de trabajo automatizados que integran datos, aplicaciones, servicios basados en la nube y sistemas locales mediante la selección de cientos de conectores. En mis propias palabras, es una forma fácil y barata de crear un proceso de automatización. Además, este proceso puede ser algo muy sencillo, como por ejemplo, enviar un email cada vez que se crea un archivo nuevo en un blob; sin embargo, esta plataforma es muy potente y puedes llegar a hacer cosas más avanzadas.

Las Logic Apps (LA) forman parte de Azure Integration Services, por lo que simplifica la forma de conectar sistemas a través de entornos híbridos (locales y en la nube), aunque puede centrarse en uno solo.

¿Cómo crear una Azure Logic App?

Hay varias formas de crear una LA, desde Visual Studio o Visual Code, desde el portal de Azure, desde la CLI de Azure o desde plantillas Azure Resource Manager (ARM). En este post nos vamos a centrar en el portal y la CLI de Azure.

¿Cómo crear una Azure Logic App en el portal de Azure?

Comencemos con el portal de Azure, para este ejemplo es necesaria una suscripción a Azure. Buscaremos ‘logic’ en el portal y nos aparecerá el recurso Logic App sobre el que pulsaremos:

Búsqueda del recurso Logic App en el portal de Azure
Ilustración 1. Recurso LA portal Azure

Nos aparecerá una lista con las LA que tengamos creadas, su estado, el plan de pago, el grupo de recursos… Si pulsamos sobre +Agregar podremos crear una nueva:

Visualización de la lista de las Logic App creadas
Ilustración 2. Listado LAs creadas

Ahora es el momento de elegir la suscripción y el grupo de recursos (RG), el tipo de pago y el nombre del recurso, el modo de publicación, la región y si habilitar Log Analytics (recuerdo que Log Analytics es un recurso a parte de la LA y lleva su propio pago). Cuando los valores estén establecidos pulsaremos en Etiquetas:

Página de creación del recurso Logic App
Ilustración 3. Creación LA
Página de creación del recurso Logic App con valores rellenos
Ilustración 4. Creación LA rellena

Hemos elegido el tipo Consumo, por lo que nos cobrarán cada vez que se ejecute el proceso. En caso de elegir el tipo Estándar deberemos tener en cuenta que tendremos que elegir un pago fijo por mes, podremos asociarle un Storage y/o un App Insights… En definitiva, deberemos pasar por más pestañas antes de la creación.

Si la validación es correcta podremos pulsar en Crear:

Página de validación en la creación del recurso Logic App
Ilustración 5. Validación creación correcta

¿Cómo crear el flujo de trabajo de la Azure Logic App en el portal de Azure?

Una vez se complete la implementación pulsaremos sobre Ir al recurso y se abrirá directamente el diseño de la LA para que elijamos un desencadenador:

Elección del desencadenador de la Logic App
Ilustración 6. Elección de desencadenador

Existen muchos tipos de desencadenadores, en la foto anterior hemos mostrado los que el portal de Azure muestra como los más comunes.

Más abajo tenemos plantillas que podemos usar si el proceso que necesitamos es ese, pulsaremos sobre la plantilla Aplicación Lógica en blanco.

Aquí, en la pestaña Todas podremos ver todos los desencadenadores posibles para nuestra LA y hacer búsquedas en la lupa:

Página de listado de todos los desencadenadores
Ilustración 7. Posibilidad de desencadenadores

En nuestro caso buscaremos Outlook, porque queremos que se desencadene la función cada vez que llegue un email al buzón:

Elección del desencadenador de Outlook 365
Ilustración 8. Desencadenador Outlook 365

Una vez elegido el desencadenador nos pide que iniciemos sesión para hacer la conexión con el buzón que queremos que la LA “supervise”:

Petición de inicio de sesión por parte del conector administrado Outlook 365
Ilustración 9. Iniciar sesión Outlook 365

Si no os permite loguearos correctamente puede que tengáis que dar permiso a las cookies de terceros en el portal. Una vez el logueo sea correcto debería aparecer lo siguiente:

Muestra de la conexión correcta del desencadenador de Outlook 365
Ilustración 10. Desencadenador conectado

Si pulsamos sobre Add new parameter podremos añadir más parámetros a nuestro desencadenador, en mi caso los valores serán los siguientes:

Desencadenador con valores correctos
Ilustración 11. Valores desencadenador

Pulsaremos arriba a la izquierda sobre Guardar para no perder los cambios hechos hasta ahora.

Si pulsamos sobre +Nuevo paso podremos añadir más conectores/acciones a nuestra LA, en nuestro caso vamos a marcar como leído el email que nos llega y lo vamos a mover de carpeta:

Añadir una nueva acción/conector en el flujo de trabajo
Ilustración 12. Adición de acción
Elección de conector administrado Office 365
Ilustración 13. Elección de acción

Una vez hemos elegido la acción a realizar podremos establecer el valor de los parámetros que nos pida usando aquello que hemos “recogido” en el desencadenador. Pulsamos sobre los parámetros a establecer:

Uso de valores recogidos en desencadenador en valores de la acción
Ilustración 14. Establecer valores recogidos en desencadenador

Solo deberemos hacer scroll hasta encontrar el valor adecuado:

Búsqueda del valor necesario para la acción
Ilustración 15. Búsqueda de valor adecuado

Volveremos a pulsar sobre guardar, la LA debería tener el siguiente aspecto:

Aspecto actual del flujo de trabajo de la Logic App
Ilustración 16. Aspecto flujo LA

Podríamos contestar el mensaje, eliminarlo, obtener los datos adjuntos… pero nosotros vamos a moverlo a la carpeta que queramos, pulsamos de nuevo sobre +Nuevo paso y buscamos la acción Mover correo electrónico (V2) y establecemos los parámetros que nos pide (de la misma forma que la acción anterior) Para elegir la carpeta pulsaremos sobre el icono que aparece a la derecha del parámetro, esto nos mostrará todas las carpetas y subcarpetas disponibles en nuestro buzón:

Elección de carpeta de destino para el email que desencadena el flujo
Ilustración 17. Elección de carpeta

Yo he elegido la carpeta de correo no deseado:

Conector administrado Outlook 365 para mover correo relleno
Ilustración 18. Acción Mover correo

Para terminar, vamos a elegir una acción de Control llamada Finalizar:

Elegir conector Finalizar
Ilustración 19. Elegir acción Finalizar

El estado lo estableceremos en Correcto:

Conector de finalización Correcta
Ilustración 20. Control finalizar Correcto

Si pulsamos sobre el ‘+’ de la flecha entre la última y la penúltima acción y elegimos Agregar una rama paralela podremos añadir un control de finalización para cuando el proceso no sea correcto (por conexiones, timeout…):

Agregar una rama paralela en el flujo de trabajo
Ilustración 21. Agregar rama paralela

Escribiremos los valores que queramos para el código y el mensaje de error y pulsaremos sobre los tres puntos en la esquina superior derecha de la acción y posteriormente sobre Configurar ejecución posterior, esta configuración será la que haga que finalice en una rama o en otra:

Configuración de ejecución posterior
Ilustración 22. Configuración de ejecución posterior

Elegiremos que venga por esta rama si la ejecución de la acción anterior es incorrecta, se omitió o superó el tiempo de espera y pulsaremos sobre Listo (comprobar cómo cambia el color de la flecha anterior a rojo):

Configuración de ejecución posterior en acción Finalizar
Ilustración 23. Configuración de ejecución posterior acción Finalizar

Pulsando sobre los tres puntos anteriormente mencionados también podemos cambiar el nombre de cada conector/acción para poner un nombre más específico, finalmente el flujo completo sería:

Flujo de trabajo completo
Ilustración 24. Flujo completo

¿Cómo crear una Azure Logic App desde la CLI?

Usaremos el comando az logic workflow create con un archivo JSON para la definición de la LA. Para ello necesitaremos un RG creado, un Storage Account asociado a la CLI, elegir la localización y el nombre de la LA y el archivo de definición JSON. Nosotros utilizaremos el archivo JSON que se ha creado en el anterior punto y lo modificaremos un poco. Para hacer tu propio archivo de definición puedes ver la siguiente documentación:

Si vamos a la Vista de código de la LA creada en el punto anterior podremos ver y editar el json que la forma. Copiaremos este código y cambiaremos los parámetros donde ponga algo referente al nombre de la LA, la suscripción y el RG (si estos cambiaran).

Vista de código de la Logic App
Ilustración 25. Vista de código de la LA

Subiremos al archivo desde la CLI para poder utilizarlo y lanzaremos el comando. Después de unos segundos la LA aparecerá en el RG elegido.

Carga de archivo de definición en la CLI de Azure
Ilustración 26. Carga de archivo en la CLI
Confirmación carga de archivo de definición
Ilustración 27. Confirmación subida archivo

Ejemplo: creación de una aplicación lógica desde la CLI

En este ejemplo, se crea un flujo de trabajo denominado MySecondLA en el grupo de recursos TestLogicApp de la ubicación westeurope. El archivo JSON testDefinition.json contiene la definición del flujo de trabajo que hemos copiado anteriormente.

az logic workflow create --resource-group "TestLogicApp" --location "westeurope" --name "MySecondLA" --definition "testDefinition.json"
Instalación de la extensión logic en la CLI de Azure
Ilustración 28. Instalación de extensión logic

Cuando el flujo de trabajo se crea correctamente, la CLI muestra el código JSON de la definición del nuevo flujo de trabajo y encontraremos el recurso.

Confirmación de la creación de la nueva Logic App
Ilustración 29. Confirmación creación nueva LA

Testeo del proceso

Primero, para comprobar que realmente este flujo es correcto deberemos esperar a que llegue un nuevo correo al buzón que hemos conectado con el filtro que hemos puesto. Una vez llegue ese email, ésta LA contará con una ejecución que podremos ver en el panel principal del recurso:

Ejecuciones de la Logic App
Ilustración 30. Ejecuciones LA
Ejecución correcta de Logic App
Ilustración 31. Ejecuciones LA 2

Por último, si pulsamos sobre la ejecución podremos ver el flujo de trabajo; el desencadenador y cada conector contarán con un círculo verde, amarillo, rojo o gris en función de cómo haya ido la ejecución de ese conector:

Flujo de la ejecución de la Logic App
Ilustración 32. Flujo de ejecución LA

Los colores representan:

  • Verde: ejecución correcta.
  • Amarillo: ejecución en curso.
  • Rojo: ejecución incorrecta.
  • Gris: No ejecutado, omitido.

Resumen

Hemos visto dos formas de desplegar el recurso de Logic App; con el portal de Azure y con la CLI de Azure. También, hemos comprobado como el proceso se lanzaba automáticamente y correctamente.

Este es un recurso muy potente y capaz de conectarse con cientos de servicios en función de las necesidades de cada proceso, no tengáis reparos en probar distintos flujos en función de las necesidades de vuestro proceso.

Seguid al tanto y seguiré haciendo distintos flujos y explicando los dos despliegues que solo hemos nombrado en este post.

¡Muchas gracias por leer hasta aquí!

Raquel Rodríguez Marcos

raquel.rodriguez.marcos@outlook.com

https://www.linkedin.com/in/raquel-rodriguez-marcos/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NEWSLETTER