Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Azure Logic Apps (Consumo + Estándar)
Cuando desee que un desencadenador o una acción de flujo de trabajo esperen a que los eventos o los datos lleguen a un punto de conexión de servicio de destino antes de que se ejecuten, use el desencadenador o la acción de webhook HTTP , en lugar de comprobar proactivamente el punto de conexión según una programación. El desencadenador o la acción del webhook HTTP se suscribe al punto de conexión de servicio y espera nuevos eventos o datos antes de ejecutarse. Puede usar el patrón de webhook para tareas de ejecución prolongada y procesamiento asincrónico.
En la lista siguiente se describen flujos de trabajo basados en webhook de ejemplo:
- Un desencadenador HTTP Webhook espera a que un evento llegue de Azure Event Hubs antes de ejecutar el flujo de trabajo.
- Una acción HTTP Webhook espera una aprobación en Office 365 Outlook antes de continuar con la siguiente acción en el flujo de trabajo.
En esta guía se muestra cómo configurar el desencadenador de webhook HTTP y la acción de webhook HTTP para que el flujo de trabajo pueda recibir y responder a nuevos eventos o datos en un punto de conexión de servicio.
¿Cómo funcionan los webhooks?
Un desencadenador o acción de webhook no sondea ni comprueba proactivamente si hay nuevos eventos o datos en el punto de conexión de servicio de destino. En su lugar, el desencadenador o la acción espera hasta que lleguen nuevos eventos o datos al punto de conexión de servicio antes de que se ejecuten. Después de agregar un desencadenador o una acción de webhook al flujo de trabajo y, después de guardarlo, o después de volver a habilitar un recurso de aplicación lógica deshabilitada, el desencadenador o la acción de webhook se suscribe al punto de conexión de servicio mediante la generación y el registro de una dirección URL de devolución de llamada con el punto de conexión. El disparador o acción espera entonces a que el endpoint del servicio llame a la URL, que ejecuta el disparador o la acción. Igual que el disparador de solicitud, un disparador de webhook HTTP se activa inmediatamente.
Por ejemplo, la acción del conector Office 365 Outlook denominada Send approval email sigue el patrón de webhook, pero solo funciona con Office 365 Outlook. Puedes extender el patrón webhook a cualquier servicio usando el disparador o acción HTTP Webhook con el endpoint de servicio que quieras.
Un desencadenador de webhook permanece suscrito a un punto de conexión de servicio hasta que realice manualmente una de 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.
Una acción de webhook permanece suscrita a un punto de conexión de servicio a menos que se produzca una de las condiciones siguientes:
- La acción de webhook finaliza correctamente.
- Cancele la ejecución del flujo de trabajo mientras espera una respuesta.
- El flujo de trabajo se agota.
- Cambias cualquier valor de parámetro de acción de webhook que un disparador de webhook use como entrada.
Para obtener más información, consulte:
- Webhooks y suscripciones
- Creación de API personalizadas compatibles con webhook
- Acceso para realizar llamadas salientes a otros servicios y sistemas
Requisitos previos
Una cuenta y una suscripción de Azure. Obtener una cuenta gratuita de Azure.
Dirección URL de un punto de conexión de servicio o API implementado.
Este elemento debe admitir el patrón de "suscripción y cancelación de suscripción" para desencadenadores de webhook en flujos de trabajo o acciones de webhook en flujos de trabajo.
El flujo de trabajo de la app de lógica estándar o de consumo donde quieres usar el disparador o acción HTTP del Webhook .
- Para usar el desencadenador HTTP Webhook, cree un recurso de Logic App con un flujo de trabajo en blanco.
- Para usar la acción webhook HTTP , inicie el flujo de trabajo con cualquier desencadenador que funcione mejor para su escenario. En los ejemplos se utiliza el Webhook HTTP como desencadenador.
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.
En el portal Azure, abra su recurso de Aplicación de Lógica. En el diseñador, abre tu flujo de trabajo en blanco.
Siga los pasos generales para agregar el desencadenador denominado Webhook HTTP al flujo de trabajo.
En este ejemplo se cambia el nombre del desencadenador por
Run HTTP Webhook triggercomo un nombre más descriptivo. En el ejemplo, también se añade una acción de webhook HTTP. Ambos nombres deben ser únicos.Para los parámetros del desencadenador de Webhook HTTP, proporcione los valores para las llamadas de suscripción y cancelación de suscripción:
Parámetro Obligatorio Descripción Método de suscripción Sí Método que se va a usar para suscribirse al punto de conexión de destino. URI de suscripción Sí URL para suscribirse al punto de conexión de destino. Cuerpo de suscripción No Cuerpo del mensaje que se va a incluir en la solicitud de suscripción. Este ejemplo incluye la URL de callback que identifica de forma única al suscriptor, que es tu flujo de trabajo, usando la listCallbackUrl()función de expresión para recuperar la URL de callback de tu trigger.Cuerpo de cancelación de suscripción No Cualquier contenido del mensaje que se incluya en la solicitud de cancelación de suscripción. Puedes usar la listCallbackUrl()función de expresión para recuperar la URL de callback de tu acción. Sin embargo, el desencadenador también incluye y envía automáticamente los encabezados yx-ms-client-tracking-idx-ms-workflow-operation-name, que el servicio de destino puede usar para identificar de forma única el suscriptor.Para agregar otros parámetros de desencadenador, abra la lista Parámetros avanzados .
Por ejemplo, para usar los parámetros Método de cancelación de suscripción y URI de cancelación de suscripción , agréguelos de la lista Parámetros avanzados .
En el ejemplo siguiente se muestra un desencadenador que incluye los métodos, los URI y los cuerpos de mensaje que se van a usar para los métodos de suscripción y cancelación de suscripción:
Si necesita usar la autenticación, agregue los parámetros Subscribe Authentication (Autenticación de suscripción ) y Subscribe Authentication (Cancelar suscripción ) de la lista De parámetros avanzados .
Para obtener más información sobre los tipos de autenticación disponibles para el webhook HTTP, consulte Adición de autenticación a llamadas salientes.
Agregue cualquier otra acción que necesite su escenario.
Cuando termine, 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. Tu flujo de trabajo espera a que el servicio objetivo envíe una HTTP POST solicitud a la URL de callback. Cuando se produce este evento, el desencadenador se activa y pasa los datos de la solicitud al flujo de trabajo. Si esta operación se completa con éxito, el disparador se da de baja del endpoint y tu flujo de trabajo continúa 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. Tu flujo de trabajo entonces se pausa y espera a que el servicio objetivo envíe una HTTP POST solicitud a la URL de callback. Cuando se produce este evento, la acción pasa los datos de la solicitud al flujo de trabajo. Si la operación se completa con éxito, la acción se cancela del endpoint y tu flujo de trabajo continúa a la siguiente acción.
En el portal Azure, abra su recurso de Aplicación de Lógica. En el diseñador, abra el flujo de trabajo.
Siga los 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 por
Run HTTP Webhook actioncomo un nombre más descriptivo. Si el flujo de trabajo también utiliza el desencadenador Webhook HTTP, ambos nombres deben ser únicos.Para los parámetros de acción de webhook HTTP, proporcione los valores que se usarán para las llamadas de suscripción y cancelación de suscripción:
Parámetro Obligatorio Descripción Método de suscripción Sí Método que se va a usar para suscribirse al punto de conexión de destino. URI de suscripción Sí URL para suscribirse al punto de conexión de destino. Cuerpo de suscripción No Cuerpo del mensaje que se va a incluir en la solicitud de suscripción. Este ejemplo incluye la URL de callback que identifica de forma única al suscriptor, que es tu flujo de trabajo, usando la listCallbackUrl()función de expresión para recuperar la URL de callback de tu acción.Cuerpo de cancelación de suscripción No Cualquier contenido del mensaje que se incluya en la solicitud de cancelación de suscripción. Puedes usar la listCallbackUrl()función de expresión para recuperar la URL de callback de tu acción. Sin embargo, la acción también incluye y envía automáticamente los encabezadosx-ms-client-tracking-idyx-ms-workflow-operation-name, que el servicio de destino puede usar para identificar de forma única el suscriptor.Para agregar otros parámetros de acción, abra la lista Parámetros avanzados .
Por ejemplo, para usar los parámetros Método de cancelación de suscripción y URI de cancelación de suscripción , agréguelos de la lista Parámetros avanzados .
En el ejemplo siguiente se muestra una acción que incluye los métodos, los URI y los cuerpos de mensaje que se usarán para los métodos de suscripción y cancelación de suscripción:
Si necesita usar la autenticación, agregue los parámetros Subscribe Authentication (Autenticación de suscripción ) y Subscribe Authentication (Cancelar suscripción ) de la lista De parámetros avanzados .
Para obtener más información sobre los tipos de autenticación disponibles para el webhook HTTP, consulte Adición de autenticación a llamadas salientes.
Agregue cualquier otra acción que necesite su escenario.
Cuando termine, 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. Tu flujo de trabajo pausa y espera a que el servicio objetivo envíe una HTTP POST solicitud a la URL de devolución. Cuando se produce este evento, la acción pasa los datos de la solicitud al flujo de trabajo. Si la operación se completa con éxito, la acción se cancela del endpoint y tu flujo de trabajo continúa a la siguiente acción.
Referencia técnica del conector
Para obtener más información sobre los parámetros de acción y desencadenador de webhook HTTP , consulte Parámetros de webhook HTTP. El desencadenador y la acción tienen los mismos parámetros.
Expiración del token de firma de acceso compartido (SAS)
La URL de callback para el disparador o acción HTTP Webhook se genera automáticamente mediante el métodoList Callback Url - REST API. De forma predeterminada, el token de SAS en la dirección URL de devolución de llamada no tiene una expiración basada en el tiempo. La dirección URL de devolución de llamada permanece válida mientras dure la ejecución del flujo de trabajo.
Límites de tiempo de espera
En la tabla siguiente se describen los límites de tiempo de espera de la acción de webhook HTTP , en función de la opción de hospedaje de la aplicación lógica:
| Opción de hospedaje | Tipo de flujo de trabajo | Duración |
|---|---|---|
| Consumo | Stateful | Hasta 90 días. |
| Estándar | Stateful | Hasta 30 días. |
| Estándar | Sin estado | 5 minutos (límite fijo) |
La URL de devolución de llamada de la acción HTTP Webhook se vuelve inválida cuando se producen los siguientes eventos:
- Cancela el flujo de trabajo.
- Elimine o deshabilite el flujo de trabajo o el recurso de aplicación lógica.
- Usted rota las claves de acceso del flujo de trabajo.
- El flujo de trabajo se agota.
Para ver otros límites HTTP, consulte límites de HTTP en Azure Logic Apps.
Cambio del límite de tiempo de espera
Para cambiar este límite para la acción HTTP Webhook en flujos de trabajo con estado mediante el portal de Azure, consulte la tabla de duración Timeout para las solicitudes HTTP salientes. O bien, en la definición JSON de la acción, agregue el limit.timeout objeto y establezca el valor en la duración que desee, por ejemplo:
{
"actions": {
"Run_HTTP_Webhook_action": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "POST",
"uri": "https://<external-service>.com/subscribe",
"body": {
"callbackUrl": "@{listCallBackUrl()}"
}
},
"unsubscribe": {}
},
"limit": {
"timeout": "PT1H"
}
}
}
}
Salidas de los desencadenadores y las acciones
En las tablas siguientes se proporciona más información sobre las salidas devueltas por un desencadenador o una acción de webhook HTTP :
| Nombre JSON | Tipo | Descripción |
|---|---|---|
headers |
Json (objeto) | Los encabezados de la solicitud. |
body |
Json (objeto) | 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 | Accepted |
| 400 | Solicitud incorrecta |
| 401 | No autorizado |
| 403 | Prohibido |
| 404 | No encontrado |
| 500 | Error interno del servidor Error desconocido. |
Generar URL de devolución de llamada con clave de acceso secundaria
Un flujo de trabajo de aplicación lógica tiene dos claves de acceso: principal y secundaria. De forma predeterminada, Azure Logic Apps usa la clave principal para generar la dirección URL de devolución de llamada para el desencadenador de webhook HTTP.
Para usar la clave secundaria en su lugar para la generación de URL de devolución de llamada, siga estos pasos:
Si estás en el diseñador de flujo de trabajo, cambia a la vista de código.
En la definición del
HttpWebhookdesencadenador, busque el parámetroaccessKeyType.Escriba la palabra
Secondarycomo valor de parámetro.Guarde los cambios.
En el ejemplo siguiente se muestra la definición del desencadenador de webhook con el accessKeyType parámetro establecido en Secondary:
{
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "POST",
"uri": "<subscription-URL>",
"body": "@listCallbackUrl()"
},
"accessKeyType": "Secondary"
},
"runAfter": {}
}