S’abonner et attendre que des événements exécutent des workflows en utilisant des webhooks HTTP dans Azure Logic Apps

S’applique à : Azure Logic Apps (Consommation + Standard)

Au lieu d’utiliser un déclencheur qui consulte ou interroge régulièrement un point de terminaison de service ou une action qui appelle ce point de terminaison, vous pouvez utiliser un déclencheur ou une action Webhook HTTP qui s’abonne à un point de terminaison de service, attend des événements spécifiques et exécute des actions spécifiques dans votre workflow.

Voici des exemples de flux de travail basés sur webhook :

  • Attendez qu’un événement arrive d’Azure Event Hubs avant de déclencher l’exécution d’un workflow.
  • Attendre une approbation avant de poursuivre un flux de travail.

Ce guide montre comment utiliser le déclencheur Webhook HTTP et l’action Webhook pour que votre workflow puisse recevoir des événements et y répondre sur un point de terminaison de service.

Comment fonctionnent les webhooks ?

Un déclencheur de webhook est basé sur un événement et ne dépend pas de la consultation ou de l’interrogation régulières de nouveaux événements ou données. Après avoir ajouté un déclencheur de webhook à un workflow vide et enregistré le workflow, ou après avoir réactivé une ressource d’application logique désactivée, le déclencheur de webhook s’abonne au point de terminaison de service spécifié en inscrivant une URL de rappel à ce point de terminaison. Le déclencheur attend ensuite que ce point de terminaison de service appelle l’URL, ce qui déclenche et démarre le workflow. Comme pour le déclencheur de demande, un déclencheur de webhook se déclenche immédiatement. Le déclencheur de webhook reste également abonné au point de terminaison de service, sauf si vous effectuez manuellement les actions suivantes :

  • Changer la valeur des paramètres du déclencheur.
  • Supprimer le déclencheur et enregistrer votre workflow.
  • Désactiver votre ressource d’application logique.

Comme pour le déclencheur de webhook, une action de webhook est également basée sur un événement. Après avoir ajouté une action de webhook à un workflow existant et enregistré le workflow, ou après avoir réactivé une ressource d’application logique désactivée, l’action de webhook s’abonne au point de terminaison de service spécifié en inscrivant une URL de rappel à ce point de terminaison. Quand le workflow s’exécute, l’action de webhook met en pause le workflow et attend que le point de terminaison de service appelle l’URL avant de reprendre l’exécution du workflow. Une action de webhook se désabonne du point de terminaison de service quand les conditions suivantes se produisent :

  • L’action de webhook s’est correctement terminée.
  • L’exécution du workflow est annulée pendant l’attente de la réponse.
  • Avant l’expiration d’un workflow.
  • Vous changez la valeur des paramètres de l’action de webhook qui sont utilisés comme entrées par un déclencheur de webhook.

Par exemple, l’action Envoyer un e-mail d’approbation du connecteur Office 365 Outlook est un exemple d’action de Webhook qui suit ce modèle. Vous pouvez étendre ce modèle à tout service à l’aide de l’action de Webhook.

Pour plus d’informations, consultez la documentation suivante :

Pour plus d’informations sur le chiffrement, la sécurité et l’autorisation des appels entrants à votre application logique, comme Transport Layer Security (TLS), précédemment appelé Secure Sockets Layer (SSL), ou Open Authentication Microsoft Entra ID (OAuth Microsoft Entra ID), consultez Sécuriser l’accès et les données – Accès pour les appels entrants aux déclencheurs basés sur une demande.

Référence technique du connecteur

Pour plus d’informations sur les paramètres des déclencheurs et des actions, consultez Paramètres de Webhook HTTP.

Prérequis

  • Un compte et un abonnement Azure. Si vous n’avez pas d’abonnement Azure, inscrivez-vous pour bénéficier d’un compte Azure gratuit.

  • URL d’un point de terminaison ou d’une API déjà déployés prenant en charge le modèle d’abonnement et de désabonnement de webhook pour les déclencheurs de webhook dans des workflows ou des actions de webhook dans des workflows, selon le cas

  • Workflow d’application logique Standard ou Consommation où vous voulez attendre des événements spécifiques sur le point de terminaison cible. Pour commencer à utiliser le déclencheur Webhook HTTP, créez une application logique avec un workflow vide. Pour utiliser l’action Webhook HTTP, démarrez votre workflow avec le déclencheur de votre choix. Cet exemple utilise le déclencheur HTTP en tant que première étape.

Ajouter un déclencheur de Webhook HTTP

Ce déclencheur intégré appelle le point de terminaison d’abonnement sur le service cible et inscrit une URL de rappel auprès de celui-ci. Votre workflow attend ensuite que le service cible envoie une demande HTTP POST à l’URL de rappel. Lorsque cet événement se produit, le déclencheur s’active et transmet toutes les données de la demande au workflow.

  1. Sur le portail Azure, ouvrez votre workflow d’application logique Standard dans le concepteur.

  2. Suivez ces étapes générales pour ajouter le déclencheur nommé Webhook HTTP à votre workflow.

    Cet exemple renomme le déclencheur en Déclencheur Webhook HTTP pour que l’étape ait un nom plus descriptif. Par ailleurs, l’exemple ajoute ensuite une action de Webhook HTTP, et les deux noms doivent être uniques.

  3. Spécifiez les valeurs des paramètres du déclencheur de Webhook HTTP que vous souhaitez utiliser pour les appels d’abonnement et de désabonnement.

    Propriété Obligatoire Description
    Abonnement – Méthode Oui Méthode à utiliser lors de l’abonnement au point de terminaison cible
    Abonnement – URI Oui URL à utiliser pour l’abonnement au point de terminaison cible
    Abonnement – Corps Non Corps de message à inclure dans la demande d’abonnement. Cet exemple inclut l’URL de rappel qui identifie de façon unique l’abonné, qui est votre application logique, en utilisant l’expression @listCallbackUrl() pour récupérer l’URL de rappel de votre application logique.
    Désabonnement – Méthode Non Méthode à utiliser lors du désabonnement du point de terminaison cible
    Désabonnement – URI Non URL à utiliser pour le désabonnement du point de terminaison cible
    Désabonnement – Corps Non Corps de message facultatif à inclure dans la demande de désabonnement

    Remarque : cette propriété ne prend pas en charge l’utilisation de la fonction listCallbackUrl(). Toutefois, le déclencheur inclut et envoie automatiquement les en-têtes x-ms-client-tracking-id et x-ms-workflow-operation-name que le service cible peut utiliser pour identifier l’abonné de façon unique.

    Remarque

    Pour les propriétés Se désabonner - Méthode et Se désabonner - URI, ajoutez-les à votre action en ouvrant la liste Paramètres avancés.

    Par exemple, le déclencheur suivant comprend les méthodes, URI et corps de message à utiliser pendant l’exécution des opérations d’abonnement et de désabonnement.

    Screenshot shows Standard workflow with HTTP Webhook trigger parameters.

    Si vous avez besoin d’utiliser une authentification, vous pouvez ajouter les propriétés S’abonner – Authentification et Se désabonner – Authentification. Pour en savoir plus sur les types d’authentification disponibles pour Webhook HTTP, consultez Ajouter l’authentification aux appels sortants.

  4. Continuez à générer votre flux de travail avec des actions qui s’exécutent quand le déclencheur se déclenche.

  5. Lorsque vous avez terminé, enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

L’enregistrement de votre workflow appelle le point de terminaison d’abonnement sur le service cible et inscrit l’URL de rappel. Votre workflow attend ensuite que le service cible envoie une demande HTTP POST à l’URL de rappel. Lorsque cet événement se produit, le déclencheur s’active et transmet toutes les données de la demande au workflow. Si cette opération s’exécute correctement, le déclencheur se désabonne du point de terminaison et votre workflow passe à l’action suivante.

Ajouter une action de Webhook HTTP

Cette action intégrée appelle le point de terminaison d’abonnement sur le service cible et inscrit une URL de rappel auprès de celui-ci. Ensuite, votre workflow se met en pause et attend que le service cible envoie une demande HTTP POST à l’URL de rappel. Lorsque cet événement se produit, l’action transmet toutes les données de la demande au workflow. Si l’opération s’exécute correctement, l’action se désabonne du point de terminaison et votre workflow passe à l’action suivante.

Cet exemple utilise le déclencheur Webhook HTTP comme première étape.

  1. Sur le portail Azure, ouvrez votre application logique Standard et votre workflow dans le concepteur.

  2. Suivez ces étapes générales pour ajouter l’action nommée Webhook HTTP à votre workflow.

    Cet exemple renomme l’action en Action Webhook HTTP pour qu’elle ait un nom plus descriptif.

  3. Spécifiez les valeurs des paramètres d’action de Webhook HTTP, qui sont similaires aux paramètres du déclencheur de Webhook HTTP que vous souhaitez utiliser pour les appels d’abonnement et de désabonnement.

    Propriété Obligatoire Description
    Abonnement – Méthode Oui Méthode à utiliser lors de l’abonnement au point de terminaison cible
    Abonnement – URI Oui URL à utiliser pour l’abonnement au point de terminaison cible
    Abonnement – Corps Non Corps de message à inclure dans la demande d’abonnement. Cet exemple inclut l’URL de rappel qui identifie de façon unique l’abonné, qui est votre application logique, en utilisant l’expression @listCallbackUrl() pour récupérer l’URL de rappel de votre application logique.
    Désabonnement – Méthode Non Méthode à utiliser lors du désabonnement du point de terminaison cible
    Désabonnement – URI Non URL à utiliser pour le désabonnement du point de terminaison cible
    Désabonnement – Corps Non Corps de message facultatif à inclure dans la demande de désabonnement

    Remarque : cette propriété ne prend pas en charge l’utilisation de la fonction listCallbackUrl(). Toutefois, l’action inclut et envoie automatiquement les en-têtes x-ms-client-tracking-id et x-ms-workflow-operation-name que le service cible peut utiliser pour identifier l’abonné de façon unique.

    Remarque

    Pour les propriétés Se désabonner - Méthode et Se désabonner - URI, ajoutez-les à votre action en ouvrant la liste Paramètres avancés.

    Par exemple, l’action suivante comprend les méthodes, URI et corps de message à utiliser pendant l’exécution des opérations d’abonnement et de désabonnement.

    Screenshot shows Standard workflow with HTTP Webhook action parameters.

  4. Pour ajouter d’autres propriétés d’action, ouvrez la liste Paramètres avancés.

    Par exemple, si vous avez besoin d’utiliser l’authentification, vous pouvez ajouter les propriétés Abonnement – Authentification et Désabonnement – Authentification. Pour en savoir plus sur les types d’authentification disponibles pour Webhook HTTP, consultez Ajouter l’authentification aux appels sortants.

  5. Lorsque vous avez terminé, enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

Quand cette action s’exécute, votre workflow appelle le point de terminaison d’abonnement sur le service cible et inscrit l’URL de rappel. Ensuite, le workflow se met en pause et attend que le service cible envoie une demande HTTP POST à l’URL de rappel. Lorsque cet événement se produit, l’action transmet toutes les données de la demande au workflow. Si l’opération s’exécute correctement, l’action se désabonne du point de terminaison et votre workflow passe à l’action suivante.

Sorties des déclencheurs et actions

Voici d’autres informations sur les sorties d’un déclencheur ou d’une action de Webhook HTTP qui renvoient les informations suivantes :

Nom de la propriété Type Description
headers object En-têtes de la requête
body object Objet avec le contenu du corps de la requête
code d’état int Code d’état de la requête
Code d’état Description
200 OK
202 Accepted
400 Demande incorrecte
401 Non autorisé
403 Interdit
404 Introuvable
500 Erreur de serveur interne. Une erreur inconnue s’est produite.

Étapes suivantes