Detección de un evento externo mediante un desencadenador

Completado

En Azure Logic Apps, un desencadenador siempre inicia un flujo de trabajo como primer paso. Para ejecutar correctamente el flujo de trabajo, debe encontrar el mejor desencadenador y configurar sus propiedades para el escenario. En el ejemplo, se usará un desencadenador de Twitter que ejecuta el flujo de trabajo cuando se publica un tweet con el nombre del producto.

En esta unidad, se examinarán los tipos de desencadenadores además de las ventajas e inconvenientes relacionadas con las opciones más comunes. Después, se mostrará cómo crear un flujo de trabajo de aplicación lógica mediante Azure Portal y cómo agregar un desencadenador en el diseñador de flujos de trabajo.

Tipos de desencadenador

Tenga en cuenta las distintas condiciones de desencadenador que las empresas podrían usar para ejecutar sus flujos de trabajo de aplicación lógica. La mayoría de los ejemplos que se han visto son desencadenadores que detectan si los datos o un evento de un servicio o sistema cumplen condiciones específicas. Por ejemplo, cuando se publica un tweet nuevo, se inserta una fila nueva en una base de datos, llega un correo electrónico nuevo, o bien se carga un archivo nuevo en el almacenamiento en nube. Los desencadenadores que detectan datos o eventos pueden usar cualquiera de las técnicas siguientes:

  • Desencadenadores que sondean o comprueban periódicamente un servicio o sistema en busca de datos o eventos específicos que cumplan las condiciones
  • Desencadenadores que esperan y reciben notificaciones de inserción de un servicio o sistema cuando determinados datos o eventos cumplen las condiciones

Pero, ¿qué ocurre si necesita un desencadenador que no esté enlazado a datos ni eventos en el servicio o el sistema? Imagine que quiere ejecutar el flujo de trabajo todos los sábados a medianoche o con cualquier otra programación. Puede usar el desencadenador Periodicidad para programar y ejecutar cualquier acción en un flujo de trabajo. Por ejemplo, puede programar flujos de trabajo que realizan tareas administrativas, como ejecutar copias de seguridad o archivar datos antiguos. Imagine que solo quiere ejecutar el flujo de trabajo cuando se llama desde código u otro origen. Puede usar el desencadenador Solicitud o "manual" para esperar solicitudes, por ejemplo, enviadas desde el código de la aplicación web o la aplicación móvil.

En el diagrama siguiente se resumen los tipos de desencadenadores descritos anteriormente:

An illustration showing the four types of triggers: polling, push, recurrence, and manual.

En las secciones siguientes se proporciona más información sobre los desencadenadores de sondeo y los desencadenadores de inserción.

¿Qué es un desencadenador de sondeo?

Un desencadenador de sondeo comprueba periódicamente un servicio o sistema en busca de datos o un evento que cumpla condiciones específicas. Después de esta comprobación, si el desencadenador encuentra datos o un evento que cumple las condiciones, inicia una nueva ejecución de flujo de trabajo. Por ejemplo, el conector RSS tiene un desencadenador de sondeo que puede comprobar periódicamente si hay nuevas publicaciones en una fuente RSS.

Después de agregar un desencadenador de sondeo al flujo de trabajo, se establece la frecuencia y un intervalo para controlar con qué frecuencia se ejecuta el desencadenador. La frecuencia es una unidad de tiempo, como Segundo, Minuto, Hora, Día, Semana o Mes. El intervalo es el número de unidades de tiempo que transcurren antes de que el desencadenador vuelva a comprobar si hay datos o un evento. Por ejemplo, un desencadenador de sondeo con una frecuencia de Minuto y un intervalo de 5 realiza comprobaciones cada cinco minutos.

Para los desencadenadores de sondeo tendrá que elegir entre la frecuencia con la que se ejecutan y cuánto cuestan. A menudo, hay un retraso entre el momento en que se producen nuevos datos o un evento, y el momento en el que el desencadenador los detecta. Por ejemplo, imagine que un desencadenador de sondeo comprueba los datos cada cinco minutos. Los datos nuevos están disponibles después de siete minutos. El desencadenador no detecta los nuevos datos hasta el siguiente sondeo, que se produce a los 10 minutos. En el diagrama siguiente se muestra cómo funciona este sondeo:

Diagram shows a timeline and a polling trigger checking for new data every five minutes. New data becomes available after seven minutes. The trigger doesn't detect the new data until the next poll, which happens at 10 minutes.

En el peor de los casos, el retraso posible al detectar datos nuevos es igual que el intervalo de sondeo. ¿Por qué no usar un intervalo menor? Para comprobar si hay datos nuevos, el motor de ejecución de Azure Logic Apps debe ejecutar el flujo de trabajo, lo que significa que incurre en un gasto. Por lo general, cuanto menor sea el intervalo, mayor será el costo, pero el desencadenador responde con más rapidez a los nuevos datos o eventos. El mejor intervalo de sondeo para el desencadenador depende del proceso de negocio y de la tolerancia al retraso.

¿Qué es un desencadenador de push?

Un desencadenador de inserción espera notificaciones de un servicio o sistema cuando los datos o un evento cumplen condiciones específicas. El desencadenador se suscribe a un punto de conexión en un servicio o sistema externo. Cuando los datos nuevos o un evento cumplen las condiciones, el servicio o el sistema notifica al desencadenador, lo que inicia inmediatamente una nueva ejecución de flujo de trabajo. Por ejemplo, el conector de Azure Service Bus tiene un desencadenador de push que detecta cuándo se agrega un mensaje a una cola de Azure Service Bus.

Nota

Los desencadenadores de push usan webhooks, que permiten que los desencadenadores se suscriban al servicio o sistema externo. En el momento de la suscripción, Azure Logic Apps genera una URL de devolución de llamada para el desencadenador y la registra con el servicio o sistema externo. Del mismo modo, Azure Logic Apps cancela la suscripción y anula el registro de la URL de devolución de llamada cuando ya no necesita la suscripción, por ejemplo, si deshabilita o elimina el flujo de trabajo.

En el lado positivo, los desencadenadores de push no se ejecutan cuando no hay datos ni eventos disponibles. Por tanto, no incurren en costos de sondeo. Estos desencadenadores también responden inmediatamente cuando existen nuevos datos o eventos. En el diagrama siguiente se muestra cómo funciona este proceso de inserción:

Diagram shows a timeline where a marker indicates when new data becomes available. The push trigger detects the data and immediately responds.

¿Por qué no usar desencadenadores de push todo el tiempo si responden más rápidamente y cuestan menos que los desencadenadores de sondeo? Desafortunadamente, no todos los conectores ofrecen un desencadenador de push. Es posible que el servicio externo no admita los desencadenadores de push o que el creador del conector no haya elegido implementar uno. Por lo general, un conector ofrece desencadenadores de sondeo o de push, pero no los dos. En casos poco frecuentes en los que un conector ofrezca las dos opciones, considere la posibilidad de usar el desencadenador de push debido a su mejor eficiencia.

Este módulo se centrará en los desencadenadores de sondeo. Estos desencadenadores son los más comunes y resultan perfectos para los escenarios de "enrutamiento y procesamiento de datos" que se han descrito.

Parámetros y valores devueltos de desencadenadores

Considere a las operaciones de desencadenador llamadas de función que tienen parámetros y valores devueltos. Los parámetros de desencadenador permiten configurar la operación. El desencadenador de Twitter denominado Cuando se publica un tweet nuevo tiene un parámetro denominado Texto de búsqueda. El desencadenador usa este parámetro para seleccionar tweets coincidentes. En algunas operaciones se usan tanto parámetros obligatorios como opcionales. El desencadenador de SQL Server Cuando se crea un elemento tiene un parámetro obligatorio denominado Nombre de la tabla y varios parámetros opcionales como Ordenar por y Seleccionar consulta.

Los valores devueltos de desencadenador son los resultados de la operación. Por ejemplo, el conector de Bitbucket tiene un desencadenador denominado Cuando se combina una solicitud de incorporación de cambios. El desencadenador devuelve un objeto que contiene datos, como la identidad del Repositorio y el Actor que ha aprobado la combinación. La mayoría de los desencadenadores devuelven realmente una colección de objetos, en lugar de un solo. Por ejemplo, el desencadenador de Twitter Cuando se publica un tweet nuevo devuelve una matriz de objetos TweetModel. Cada objeto contiene valores como Texto del tweet, Nombre de usuario y Recuento de seguidores. En el diagrama siguiente se muestra una colección devuelta desde un desencadenador:

Diagram shows Twitter trigger interacting with Twitter. The trigger sends the search text to Twitter, and Twitter returns an object array. Each object in the array contains information about one of the matching tweets.

Puede usar un bucle para procesar cada elemento, o bien puede configurar el desencadenador para que divida la matriz para el procesamiento. Para la mayoría de los desencadenadores, incluido el de Twitter, el comportamiento predeterminado divide la matriz de manera automática. El motor de Azure Logic Apps crea una instancia de flujo de trabajo para cada elemento y todas las instancias se ejecutan en paralelo. En el diagrama siguiente se muestra cómo cada elemento de la matriz devuelta va a una instancia de flujo de trabajo diferente para su procesamiento:

Diagram shows three tweets returned from the Twitter trigger and three workflow instances in the social media monitoring logic app. An arrow connects each tweet in the array with each workflow instance in the logic app.

Creación de un flujo de trabajo de aplicación lógica en Azure Portal

En Azure Portal, busque y seleccione el tipo de recurso Aplicación lógica y proporcione información sobre el recurso, como Nombre, Suscripción, Grupo de recursos y Ubicación. Una vez que se complete la implementación, puede ir al recurso de aplicación lógica.

Al abrir el nuevo recurso de aplicación lógica, encontrará una página de "introducción". En esta página se incluyen desencadenadores usados habitualmente y una galería de plantillas con patrones de flujo de trabajo y tipos de aplicación comunes. Por ejemplo, puede encontrar plantillas de flujo de trabajo como Publicar en Slack si un tweet nuevo coincide con algún hashtag y Enviar recordatorios diarios a su correo electrónico.

En la página "Introducción", puede seleccionar un desencadenador común para agregarlo al flujo de trabajo, o bien una plantilla para generar un flujo de trabajo completo. Si alguna plantilla se ajusta al escenario, puede ahorrar tiempo en la configuración de la aplicación. Para realizar todo el trabajo personalmente, puede seleccionar la plantilla Aplicación lógica en blanco.

Después de seleccionar una plantilla, el diseñador de flujo de trabajo se abre automáticamente.

Adición de un desencadenador mediante el diseñador

El diseñador de flujos de trabajo muestra una galería de conectores con los desencadenadores y las acciones que puede usar en el flujo de trabajo. Normalmente, al empezar con un flujo de trabajo en blanco, puede usar el cuadro de búsqueda para buscar un conector que le interese. Después, revise los desencadenadores que proporcione el conector. En el ejemplo, se selecciona el desencadenador de Twitter denominado Cuando se publica un tweet nuevo. Para Twitter, también hay que crear una conexión mediante el inicio de sesión en la cuenta de Twitter.

Después de agregar un desencadenador y crear una conexión al servicio o sistema cuando sea necesario, el diseñador muestra las propiedades del desencadenador. Para Twitter, se establecerán los parámetros Texto de búsqueda, Frecuencia e Intervalo. En la captura de pantalla siguiente se muestra el flujo de trabajo de la aplicación lógica de supervisión de redes sociales en el diseñador, donde el desencadenador de Twitter aparece como primer paso.

Screenshot shows example logic app workflow in the designer. A box for each step represents the trigger and each action. Arrows connect the boxes to show execution through the workflow.