Suscripción y espera a que los eventos ejecuten flujos de trabajo mediante webhooks HTTP en Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

En lugar de usar un desencadenador que compruebe o sondea periódicamente un punto de conexión de servicio o una acción que llame a ese punto de conexión, puede usar una acción o desencadenador de webhook HTTP que se suscribe a un punto de conexión de servicio, espere eventos específicos y ejecute acciones específicas en el flujo de trabajo.

Estos son algunos ejemplos de flujos de trabajo basados en webhook:

  • Espere a que llegue un evento desde Azure Event Hubs antes de desencadenar una ejecución de flujo de trabajo.
  • Espere a una aprobación antes de continuar con un flujo de trabajo.

En esta guía se muestra cómo usar el desencadenador de webhook HTTP y la acción de webhook para que el flujo de trabajo pueda recibir y responder a los eventos de un punto de conexión de servicio.

¿Cómo funcionan los webhooks?

Un desencadenador de webhook de HTTP se basa en eventos, que no dependen de la comprobación o sondeo regular de nuevos datos o eventos. Después de agregar un desencadenador de webhook a un flujo de trabajo vacío y, después de guardarlo, o después de volver a habilitar un recurso de aplicación lógica deshabilitada, el desencadenador de webhook se suscribe al punto de conexión de servicio especificado registrando una dirección URL de devolución de llamada con ese punto de conexión. A continuación, el desencadenador espera a que ese punto de conexión de servicio llame a la dirección URL, que activa el desencadenador e inicia el flujo de trabajo. De forma similar al desencadenador de solicitud, se desencadena inmediatamente un desencadenador de webhook. El desencadenador de webhook también permanece suscrito al punto de conexión de servicio, a menos que realice manualmente las siguientes acciones:

  • Cambiar los valores de parámetro del desencadenador.
  • Eliminar el desencadenador y guardar el flujo de trabajo.
  • Deshabilitar el recurso de la aplicación lógica.

De forma similar al desencadenador de webhook, una acción de webhook funciona también basada en eventos. Después de agregar una acción de webhook a un flujo de trabajo existente y, a continuación, guardar el flujo de trabajo, o después de volver a habilitar un recurso de aplicación lógica deshabilitada, la acción de webhook se suscribe al punto de conexión de servicio especificado registrando una dirección URL de devolución de llamada con ese punto de conexión. Cuando se ejecuta el flujo de trabajo, la acción de webhook pausa el flujo de trabajo y espera a que el punto de conexión de servicio llame a la dirección URL antes de que el flujo de trabajo reanude la ejecución. Una acción de webhook cancela la suscripción al punto de conexión de servicio cuando se producen las condiciones siguientes:

  • La acción de webhook finaliza correctamente.
  • La ejecución del flujo de trabajo se cancela mientras se espera una respuesta.
  • Antes de que se agote el tiempo de espera de una ejecución de flujo de trabajo.
  • Puede cambiar los valores de parámetros de la acción de webhook que usa como entradas un desencadenador de webhook.

Por ejemplo, la acción Enviar correo de aprobación del conector de Office 365 Outlook es un ejemplo de acción de webhook que sigue este patrón. Puede ampliar este patrón a cualquier servicio mediante el uso de la acción de webhook.

Para más información, consulte la siguiente documentación:

Para obtener información sobre el cifrado, la seguridad y la autorización de las llamadas entrantes para la aplicación lógica, como la Seguridad de la capa de transporte (TLS), conocida anteriormente como Capa de sockets seguros (SSL), o la Autenticación abierta de Microsoft Entra ID (Microsoft Entra ID OAuth), consulte Proteger el acceso y los datos: Acceso de llamadas entrantes para desencadenadores basados en solicitud.

Referencia técnica del conector

Para obtener más información sobre los parámetros del desencadenador y de la acción, consulte Parámetros de webhook HTTP.

Requisitos previos

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

  • La dirección URL para una API o un punto de conexión ya implementado que admita el patrón de suscripción y cancelación de suscripción de webhook para desencadenadores de webhook en flujos de trabajo o acciones de webhook en flujos de trabajo, según corresponda.

  • Flujo de trabajo de la aplicación lógica Estándar o Consumo en el que desea esperar eventos específicos en el punto de conexión de destino. Para empezar con el desencadenador de webhook HTTP, cree una aplicación lógica con un flujo de trabajo en blanco. Para usar la acción Webhook HTTP, inicie el flujo de trabajo con cualquier desencadenador que quiera. En este ejemplo se usa el desencadenador HTTP como primer paso.

Adición de un desencadenador de webhook HTTP

Este desencadenador integrado llama al punto de conexión de suscripción en el servicio de destino y registra una dirección URL de devolución de llamada en el servicio de destino. A continuación, el flujo de trabajo espera a que el servicio de destino envíe una solicitud HTTP POST a la dirección URL de devolución de llamada. Cuando se produce este evento, el desencadenador se activa y pasa los datos de la solicitud junto al flujo de trabajo.

  1. En Azure Portal, abra su aplicación lógica estándar y el flujo de trabajo en blanco en el diseñador.

  2. Siga estos pasos generales para agregar el desencadenador denominado Webhook HTTP al flujo de trabajo.

    En este ejemplo se cambia el nombre del desencadenador a Desencadenador de webhook HTTP para que el paso tenga un nombre más descriptivo. Además, más adelante, en el ejemplo se agrega una acción de webhook HTTP, y ambos nombres deben ser únicos.

  3. Proporcione los valores para los parámetros del desencadenador de webhook HTTP que quiera usar para las llamadas de suscripción y cancelación de suscripción.

    Propiedad Obligatorio Descripción
    Suscripción: método Método que se va a usar al suscribirse al punto de conexión de destino.
    Suscripción: URI Dirección URL que se va a usar al suscribirse al punto de conexión de destino.
    Suscripción: cuerpo No Cuerpo del mensaje que se va a incluir en la solicitud de suscripción. En este ejemplo se incluye la dirección URL de devolución de llamada que identifica de forma única al suscriptor, que es la aplicación lógica, mediante el uso de la expresión @listCallbackUrl() para recuperar la dirección URL de devolución de llamada de la aplicación lógica.
    Cancelación de suscripción: método No Método que se va a usar al cancelar la suscripción del punto de conexión de destino.
    Cancelación de suscripción: URI No Dirección URL que se va a usar al cancelar la suscripción del punto de conexión de destino.
    Cancelación de suscripción: cuerpo No Cuerpo del mensaje opcional que se va a incluir en la solicitud de cancelación de suscripción.

    Nota: esta propiedad no admite el uso de la función listCallbackUrl(). Sin embargo, el desencadenador incluye y envía automáticamente los encabezados, x-ms-client-tracking-id y x-ms-workflow-operation-name, que el servicio de destino puede usar para identificar de forma única al suscriptor.

    Nota:

    En cuanto a las propiedades Unsubsubscribe - Method y Unsubscribe - URI, agréguelas a la acción abriendo la lista Parámetros avanzados.

    Por ejemplo, el siguiente desencadenador incluye los métodos, los identificadores URI y los cuerpos de mensaje que se van a usar al realizar las operaciones de suscripción y cancelación de suscripción.

    Screenshot shows Standard workflow with HTTP Webhook trigger parameters.

    Si necesita usar la autenticación, puede agregar las propiedades Suscripción: autenticación y Cancelación de suscripción: autenticación. Para obtener más información sobre los tipos de autenticación disponibles para webhook de HTTP, consulte Incorporación de la autenticación en las llamadas salientes.

  4. Continúe creando el flujo de trabajo con acciones que se ejecuten cuando se activa el desencadenador.

  5. Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

Al guardar el flujo de trabajo, se llama al punto de conexión de suscripción del servicio de destino y se registra la dirección URL de devolución de llamada. A continuación, el flujo de trabajo espera a que el servicio de destino envíe una solicitud HTTP POST a la dirección URL de devolución de llamada. Cuando se produce este evento, el desencadenador se activa y pasa los datos de la solicitud junto al flujo de trabajo. Si esta operación se completa correctamente, el desencadenador cancelará la suscripción del punto de conexión y el flujo de trabajo continuará con la siguiente acción.

Adición de una acción de webhook HTTP

Esta acción integrada llama al punto de conexión de suscripción en el servicio de destino y registra una dirección URL de devolución de llamada en el servicio de destino. A continuación, el flujo de trabajo se pone en pausa y espera a que el servicio de destino envíe una solicitud HTTP POST a la dirección URL de devolución de llamada. Cuando se produce este evento, la acción pasa los datos de la solicitud junto al flujo de trabajo. Si la operación se completa correctamente, la acción cancelará la suscripción del punto de conexión y el flujo de trabajo continuará con la siguiente acción.

En este ejemplo se usa el desencadenador Webhook HTTP como primer paso.

  1. En Azure Portal, abra su aplicación lógica estándar y el flujo de trabajo en el diseñador.

  2. Siga estos pasos generales para agregar la acción denominada Webhook HTTP al flujo de trabajo.

    En este ejemplo se cambia el nombre de la acción a Acción de webhook HTTP para que el paso tenga un nombre más descriptivo.

  3. Proporcione los valores para los parámetros de la acción de webhook HTTP, que son parecidos a los parámetros del desencadenador de webhook HTTP, que quiera usar para las llamadas de suscripción y cancelación de suscripción.

    Propiedad Obligatorio Descripción
    Suscripción: método Método que se va a usar al suscribirse al punto de conexión de destino.
    Suscripción: URI Dirección URL que se va a usar al suscribirse al punto de conexión de destino.
    Suscripción: cuerpo No Cuerpo del mensaje que se va a incluir en la solicitud de suscripción. En este ejemplo se incluye la dirección URL de devolución de llamada que identifica de forma única al suscriptor, que es la aplicación lógica, mediante el uso de la expresión @listCallbackUrl() para recuperar la dirección URL de devolución de llamada de la aplicación lógica.
    Cancelación de suscripción: método No Método que se va a usar al cancelar la suscripción del punto de conexión de destino.
    Cancelación de suscripción: URI No Dirección URL que se va a usar al cancelar la suscripción del punto de conexión de destino.
    Cancelación de suscripción: cuerpo No Cuerpo del mensaje opcional que se va a incluir en la solicitud de cancelación de suscripción.

    Nota: esta propiedad no admite el uso de la función listCallbackUrl(). Sin embargo, la acción incluye y envía automáticamente los encabezados, x-ms-client-tracking-id y x-ms-workflow-operation-name, que el servicio de destino puede usar para identificar de forma única al suscriptor.

    Nota:

    En cuanto a las propiedades Unsubsubscribe - Method y Unsubscribe - URI, agréguelas a la acción abriendo la lista Parámetros avanzados.

    Por ejemplo, la siguiente acción incluye los métodos, los identificadores URI y los cuerpos de mensaje que se van a usar al realizar las operaciones de suscripción y cancelación de suscripción.

    Screenshot shows Standard workflow with HTTP Webhook action parameters.

  4. Para agregar otras propiedades de la acción, abra la lista Parámetros avanzados.

    Por ejemplo, si necesita usar la autenticación, puede agregar las propiedades Suscripción: autenticación y Cancelación de suscripción: autenticación. Para obtener más información sobre los tipos de autenticación disponibles para webhook de HTTP, consulte Incorporación de la autenticación en las llamadas salientes.

  5. Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

Cuando se ejecuta esta acción, el flujo de trabajo llama al punto de conexión de suscripción del servicio de destino y registra la dirección URL de devolución de llamada. A continuación, el flujo de trabajo se pone en pausa y espera a que el servicio de destino envíe una solicitud HTTP POST a la dirección URL de devolución de llamada. Cuando se produce este evento, la acción pasa los datos de la solicitud junto al flujo de trabajo. Si la operación se completa correctamente, la acción cancelará la suscripción del punto de conexión y el flujo de trabajo continuará con la siguiente acción.

Salidas de los desencadenadores y las acciones

Aquí tiene más información acerca de las salidas de un desencadenador o acción de webhook HTTP, que devuelve esta información:

Nombre de propiedad Type Descripción
headers object Encabezados de la solicitud
body object Objeto con el contenido del cuerpo de la solicitud
status code int Código de estado de la solicitud
status code Descripción
200 Aceptar
202 Aceptadas
400 Solicitud incorrecta
401 No autorizado
403 Prohibida
404 No encontrado
500 Error interno del servidor. Error desconocido.

Pasos siguientes