Recevoir et répondre aux appels HTTPS entrants aux workflows dans Azure Logic Apps
S’applique à : Azure Logic Apps (Consommation + Standard)
Ce guide pratique montre comment créer un workflow d’application logique qui peut recevoir et gérer une requête HTTPS entrante ou un appel d’un autre service à l’aide du déclencheur de requête intégré. Lorsque votre workflow utilise ce déclencheur, vous pouvez ensuite répondre à la requête HTTPS à l’aide de l’action intégrée de réponse.
Remarque
L’action Réponse fonctionne uniquement lorsque vous utilisez le déclencheur Requête.
Par exemple, cette liste décrit quelques tâches que votre workflow peut effectuer lorsque vous utilisez le déclencheur Requête et l’action Réponse :
Recevoir et répondre à une requête HTTP pour des données situées dans une base de données locale.
Recevoir et répondre à une requête HTTPS envoyée depuis un autre workflow d’applications logiques.
Déclencher l'exécution d'un flux de travail lorsqu'un événement externe de type webhook se produit.
Pour exécuter votre flux de travail en envoyant une requête sortante ou sortante à la place, utilisez le déclencheur intégré HTTP ou l’action intégrée HTTP.
Prérequis
Un compte et un abonnement Azure. Si vous n’avez pas encore d’abonnement, vous pouvez vous inscrire pour obtenir un compte Azure gratuitement.
Flux de travail de l’application logique dans lequel vous souhaitez recevoir la requête HTTPS entrante. Pour démarrer votre workflow avec un déclencheur Requête, vous devez commencer par un workflow vierge. Pour utiliser l’action Réponse, votre workflow doit commencer par le déclencheur Requête.
Installez ou utilisez un outil capable d’envoyer des requêtes HTTP pour tester votre solution, par exemple :
- Visual Studio Code avec une extension de Visual Studio Marketplace
- Invoke-RestMethod de PowerShell
- Microsoft Edge - Outil console réseau
- Bruno
- curl
Attention
Dans les scénarios comprenant des données sensibles, comme des informations d’identification, des secrets, des jetons d’accès, des clés API et d’autres informations similaires, veillez à utiliser un outil qui protège vos données avec les fonctionnalités de sécurité nécessaires, qui fonctionne en mode hors connexion ou localement, qui ne synchronise pas vos données avec le cloud, et qui ne vous impose pas de vous connecter à un compte en ligne. Vous réduirez ainsi les risques liés à l’exposition de données sensibles au public.
Ajouter un déclencheur de requête
Le déclencheur Requête crée un point de terminaison appelable manuellement qui traite uniquement les requêtes entrantes sur HTTPS. Lorsque l’appelant envoie une requête à ce point de terminaison, le déclencheur Requête déclenche et exécute le workflow. Pour plus d'informations sur la façon d'appeler ce déclencheur, consultez la section Appeler, déclencher ou imbriquer des flux de travail avec des points de terminaison HTTPS dans Azure Logic Apps.
Sur le portail Azure, ouvrez votre workflow d’application logique Consommation et un workflow vide dans le concepteur.
Dans le concepteur, suivez cette procédure générale pour rechercher et ajouter le déclencheur de requête intégré nommé Lors de la réception d’une requête HTTP.
Une fois la zone d’informations de déclencheur affichée, fournissez les informations suivantes selon les besoins :
Nom de la propriété Nom de la propriété JSON Requis Description URL HTTP POST {aucune} Oui URL de point de terminaison générée après l’enregistrement de votre flux de travail et utilisée pour envoyer une demande qui déclenche votre flux de travail. Schéma JSON du corps de la demande schema
Non Schéma JSON qui décrit les propriétés et les valeurs dans le corps de la demande entrante. Le concepteur utilise ce schéma pour générer des jetons pour les propriétés dans la requête. Ainsi, votre workflow peut analyser, consommer et transmettre les résultats du déclencheur Requête à votre workflow.
Si vous ne disposez pas d'un schéma JSON, vous pouvez générer le schéma à partir d'un exemple de charge utile en utilisant la fonction Utiliser un exemple de charge utile pour générer le schéma.L'exemple suivant montre un exemple de schéma JSON :
L’exemple suivant montre l’exemple de schéma JSON complet :
{ "type": "object", "properties": { "account": { "type": "object", "properties": { "name": { "type": "string" }, "ID": { "type": "string" }, "address": { "type": "object", "properties": { "number": { "type": "string" }, "street": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "country": { "type": "string" }, "postalCode": { "type": "string" } } } } } } }
Lorsque vous saisissez un schéma JSON, le concepteur affiche un rappel pour inclure l'en-tête Content-Type dans votre requête et définir la valeur de cet en-tête à application/json. Pour plus d’informations, consultez l’article Gérer les types de contenu.
L’exemple suivant montre comment l’en-tête Content-Type s’affiche au format JSON :
{ "Content-Type": "application/json" }
Pour générer un schéma JSON basé sur la charge utile attendue (données), vous pouvez utiliser un outil tel que JSONSchema.NET ou suivre ces étapes :
Dans le déclencheur de requête, sélectionnez Utiliser l’exemple de charge utile pour générer le schéma.
Entrez l’exemple de charge utile, puis sélectionnez Terminé.
L'exemple suivant montre la charge utile type :
{ "account": { "name": "Contoso", "ID": "12345", "address": { "number": "1234", "street": "Anywhere Street", "city": "AnyTown", "state": "AnyState", "country": "USA", "postalCode": "11111" } } }
Pour vérifier que le corps de la demande de l’appel entrant correspond au schéma spécifié, procédez comme suit :
Pour faire en sorte que le message entrant contienne exactement les champs décrits dans votre schéma, ajoutez la propriété
required
à votre schéma et spécifiez les champs requis. Ajoutez la propriétéaddtionalProperties
, et définissez la valeur àfalse
.Par exemple, le schéma suivant spécifie que le message entrant doit contenir le champ
msg
et aucun autre :{ "properties": { "msg": { "type": "string" } }, "type": "object", "required": ["msg"], "additionalProperties": false }
Dans la barre de titre du déclencheur Requête, sélectionnez le bouton représentant des points de suspension (...).
Dans les paramètres du déclencheur, activez la validation du schéma, puis sélectionnez terminé.
Si le corps de la demande de l'appel entrant ne correspond pas à votre schéma, le déclencheur renvoie une erreur HTTP 400 Bad Request.
Pour ajouter d'autres propriétés ou paramètres au déclencheur, ouvrez la liste Ajouter un nouveau paramètre, puis sélectionnez les paramètres que vous souhaitez ajouter.
Nom de la propriété Nom de la propriété JSON Requis Description Méthode method
Non Méthode que les requêtes entrantes doivent utiliser pour appeler l’application logique Chemin relatif relativePath
Non Chemin relatif pour le paramètre que l’URL de point de terminaison de l’application logique peut accepter L'exemple suivant ajoute la propriété Méthode :
La propriété de Méthode apparaît dans le déclencheur afin que vous puissiez sélectionner une méthode dans la liste.
Lorsque vous êtes prêt, enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.
Cette étape génère l'URL que vous pouvez utiliser pour envoyer une demande qui déclenche le flux de travail.
Pour copier l'URL générée, sélectionnez l'icône de copie à côté de l'URL.
Remarque
Si vous souhaitez inclure le symbole dièse (#) dans l’URI lors d’un appel au déclencheur Requête, utilisez plutôt cette version encodée :
%25%23
Maintenant, continuez à créer votre flux de travail en ajoutant une autre action à l’étape suivante. Par exemple, vous pouvez répondre à la demande en ajoutant une action Réponse, que vous pouvez utiliser pour renvoyer une réponse personnalisée et qui est décrite plus loin dans cet article.
Remarque
Votre flux de travail ne garde une demande entrante ouverte que pour une durée limitée. En supposant que votre flux de travail inclut également une action de réponse, si votre flux de travail ne retourne pas de réponse à l’appelant une fois cette période expirée, votre flux de travail retourne l’état 504 GATEWAY TIMEOUT à l’appelant. Si votre flux de travail n’inclut pas d’action de réponse, votre flux de travail retourne immédiatement l’état ACCEPTÉ 202 à l’appelant.
Pour plus d’informations sur la sécurité, l’authentification et le chiffrement des appels entrants vers votre workflow, par exemple, sur TLS (Transport Layer Security), précédemment appelé SSL (Secure Sockets Layer), OAuth avec Microsoft Entra ID, Signature d'accès partagé (SAS) sur l’exposition de la ressource de votre application logique avec Gestion des API Azure, ou sur la restriction des adresses IP dont proviennent les appels entrants, consultez Sécuriser l’accès et les données : accès pour les appels entrants aux déclencheurs basés sur des requêtes.
Sorties du déclencheur
Le tableau suivant répertorie les sorties du déclencheur Requête :
Nom de la propriété JSON | Type de données | Description |
---|---|---|
headers | Object | Objet JSON qui décrit les en-têtes de la requête |
corps | Object | Objet JSON qui décrit le contenu du corps de la requête |
Ajouter une action Réponse
Lorsque vous utilisez le déclencheur Requête pour recevoir des requêtes entrantes, vous pouvez modéliser la réponse et renvoyer les résultats de la charge utile à l’appelant en utilisant l’action intégrée Réponse, qui fonctionne uniquement avec le déclencheur Requête. Cette combinaison avec le déclencheur Requête et l’action Réponse crée le modèle requête-réponse. Vous pouvez ajouter l’action de réponse n’importe où dans votre workflow, sauf à l’intérieur des boucles Foreach et Until, et des branches parallèles.
Important
Si votre action de réponse comprend les en-têtes suivants, Azure Logic Apps supprime automatiquement ces en-têtes du message de réponse généré sans afficher d'avertissement ou d'erreur. Azure Logic Apps n’inclut pas ces en-têtes, bien que le service ne vous empêche pas d’enregistrer des flux de travail qui ont une action Réponse avec ces en-têtes.
Allow
- En-têtes
Content-*
, à l’exception deContent-Disposition
,Content-Encoding
etContent-Type
lorsque vous utilisez des opérations POST et PUT, mais ne sont pas inclus pour les opérations GET Cookie
Expires
Last-Modified
Set-Cookie
Transfer-Encoding
Si vous avez une ou plusieurs actions de réponse dans un flux de travail complexe avec des branches, assurez-vous que le flux de travail traite au moins une action de réponse pendant l'exécution. Sinon, si toutes les actions de réponse sont ignorées, l’appelant reçoit une erreur 502 Passerelle incorrecte, même si le workflow se termine correctement.
Dans un flux de travail sans état d’application logique standard, l’action de réponse doit figurer en dernière position. Si l’action apparaît ailleurs, Azure Logic Apps ne l’exécutera pas tant que l’exécution de toutes les autres actions ne sera pas terminée.
Dans le concepteur de flux de travail, suivez cette procédure générale pour rechercher et ajouter l’action de réponse intégrée nommée Réponse.
Pour rester simples, les exemples suivants montrent un déclencheur Requête réduit.
Dans la zone d’informations de l’action, ajoutez les valeurs requises pour le message de réponse.
Nom de la propriété Nom de la propriété JSON Requis Description Code d’état statusCode
Oui Code d’état à retourner dans la réponse En-têtes headers
Non Objet JSON qui décrit un ou plusieurs en-têtes à inclure dans la réponse Corps body
Non Le corps de texte de la réponse Lorsque vous sélectionnez à l’intérieur des champs de texte, la liste de contenu dynamique s’ouvre automatiquement. Vous pouvez ensuite sélectionner des jetons qui représentent toute sortie disponible à partir des étapes précédentes du workflow. Les propriétés du schéma que vous spécifiez apparaissent également dans cette liste de contenu dynamique. Vous pouvez sélectionner ces propriétés à utiliser dans votre workflow.
Par exemple, dans le champ En-têtes, incluez Content-Type comme nom de clé, et définissez la valeur de la clé sur application/json, comme mentionné précédemment dans cet article. Pour la zone Corps, vous pouvez sélectionner la sortie du corps du déclencheur dans la liste de contenu dynamique.
Pour afficher les en-têtes au format JSON, sélectionnez Basculer vers la vue texte.
Pour ajouter d’autres propriétés à l’action, comme un schéma JSON pour le corps de la réponse, depuis la liste Ajouter un nouveau paramètre, sélectionnez les paramètres que vous souhaitez ajouter.
Lorsque vous avez terminé, enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.
Tester votre workflow
Pour déclencher votre workflow, envoyez une requête HTTP à l’URL générée pour le déclencheur Requête, y compris la méthode attendue par le déclencheur Requête, en utilisant votre outil de requête HTTP et ses instructions.
Pour plus d’informations sur la définition JSON sous-jacente du déclencheur et sur la façon d’appeler ce dernier, consultez ces rubriques : Type de déclencheur Requête et Appeler, déclencher ou imbriquer des workflows avec des points de terminaison HTTP dans Azure Logic Apps.
Sécurité et authentification
Dans un workflow Standard qui commence par le déclencheur Requête (mais pas un déclencheur Webhook), vous pouvez utiliser l’approvisionnement Azure Functions pour authentifier les appels entrants envoyés au point de terminaison créé par ce déclencheur à l’aide d’une identité managée. Cette disposition est également appelée « Authentification facile ». Pour plus d’informations, Consultez Workflows de déclencheur dans les applications logiques standard avec l’authentification facile.
Pour plus d’informations sur la sécurité, l’autorisation et le chiffrement des appels entrants vers le workflow de votre application logique, comme TLS (Transport Layer Security), précédemment appelé SSL (Secure Sockets Layer), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), sur l’exposition de votre application logique avec Gestion des API Azure, ou sur la restriction des adresses IP dont proviennent les appels entrants, consultez Sécuriser l’accès et les données : accès pour les appels entrants aux déclencheurs basés sur des requêtes.