Recevoir et répondre aux appels HTTPS entrants aux flux de travail dans Azure Logic Apps

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

Ce guide pratique montre comment créer un flux de travail 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 intégré de requête. Lorsque votre flux de travail utilise ce déclencheur, vous pouvez ensuite répondre à la requête HTTPS à l’aide de l’action intégrée Réponse.

Remarque

L’action Réponse fonctionne uniquement lorsque vous utilisez le déclencheur De requête.

Par exemple, cette liste décrit certaines tâches que votre flux de travail peut effectuer lorsque vous utilisez le déclencheur de 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.

  • Recevez et répondez à une requête HTTPS envoyée à partir d’un autre flux de travail d’application logique.

  • 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 flux de travail avec un déclencheur de demande, vous devez commencer par un flux de travail vierge. Pour utiliser l’action Réponse, votre flux de travail doit commencer par le déclencheur de requête.

Ajouter un déclencheur de requête

Le déclencheur de requête crée un point de terminaison pouvant être appelé manuellement qui gère uniquement les requêtes entrantes via HTTPS. Lorsque l’appelant envoie une requête à ce point de terminaison, le déclencheur de requête se déclenche et exécute le flux de travail. 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.

  1. Sur le portail Azure, ouvrez votre workflow d’application logique Consommation et un workflow vide dans le concepteur.

  2. Dans le concepteur, suivez ces étapes générales pour rechercher et ajouter le déclencheur intégré de requête nommé Lorsqu’une requête HTTP est reçue.

  3. Une fois la zone d’informations de déclencheur affichée, fournissez les informations suivantes en fonction des 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 flux de travail peut analyser, consommer et transmettre les résultats du déclencheur de demande à votre flux de travail.

    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 :

    Screenshot showing Consumption workflow and Request trigger with example JSON schema.

    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.

    Screenshot showing Consumption workflow, Request trigger, and reminder to include

    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 :

    1. Dans le déclencheur de requête, sélectionnez Utiliser l’exemple de charge utile pour générer le schéma.

      Screenshot showing Consumption workflow, Request trigger, and

    2. Entrez l’exemple de charge utile, puis sélectionnez Terminé.

      Screenshot showing Consumption workflow, Request trigger, and sample payload entered to generate schema.

      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"
            }
         }
      }
      
  4. Pour vérifier que le corps de la demande de l’appel entrant correspond au schéma spécifié, procédez comme suit :

    1. 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
      }
      
    2. Dans la barre de titre du déclencheur de requête, sélectionnez le bouton représentant des points de suspension (...).

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

  5. 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 :

    Screenshot showing Consumption workflow, Request trigger, and adding the

    La propriété de Méthode apparaît dans le déclencheur afin que vous puissiez sélectionner une méthode dans la liste.

    Screenshot showing Consumption workflow, Request trigger, and the

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

  7. Pour copier l'URL générée, sélectionnez l'icône de copie à côté de l'URL.

    Screenshot showing Consumption workflow, Request trigger, and URL copy button selected.

    Remarque

    Si vous souhaitez inclure le code de hachage ou le symbole dièse (#) dans l’URI lors d’un appel au déclencheur de 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’autorisation et le chiffrement pour les appels entrants à votre flux de travail, tels que tls (Transport Layer Security), précédemment appelé SSL (Secure Sockets Layer), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), exposer votre ressource d’application logique avec Azure Gestion des API ou restreindre les adresses IP qui proviennent des appels entrants, voir Accès sécurisé et 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 De requête :

Nom de la propriété JSON Type de données Description
headers Objet Objet JSON qui décrit les en-têtes de la requête
corps Objet 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 demandes 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 de requête et l’action de 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 de Content-Disposition, Content-Encoding et Content-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.

  1. Dans le concepteur de flux de travail, suivez ces étapes générales pour rechercher et ajouter l’action intégrée Response nommée Response.

    Pour plus de simplicité, les exemples suivants montrent un déclencheur de requête réduit.

  2. Dans la zone d’informations d’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 les sorties disponibles des étapes précédentes du flux de travail. 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 flux de travail.

    Par exemple, dans le champ En-têtes , incluez Content-Type comme nom de clé et définissez la valeur de 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.

    Screenshot showing Azure portal, Consumption workflow, and Response action information.

    Pour afficher les en-têtes au format JSON, sélectionnez Basculer vers la vue texte.

    Screenshot showing Azure portal, Consumption workflow, and Response action headers in

  3. Pour ajouter d’autres propriétés pour l’action, telles qu’un schéma JSON pour le corps de la réponse, dans la liste Ajouter un nouveau paramètre , sélectionnez les paramètres que vous souhaitez ajouter.

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

Tester votre workflow

Pour tester votre flux de travail, envoyez une requête HTTP à l'URL générée. Par exemple, vous pouvez utiliser un outil tel que Postman pour envoyer la requête HTTP. 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 de 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 flux de travail d’application logique standard qui commence par le déclencheur de requête (mais pas un déclencheur Webhook), vous pouvez utiliser la disposition 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 pour les appels entrants vers votre flux de travail d’application logique, tels que Transport Layer Security (TLS), précédemment appelé SECURE Sockets Layer (SSL), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), exposer votre application logique avec Azure Gestion des API ou restreindre les adresses IP qui proviennent des appels entrants, voir Accès sécurisé et données : accès pour les appels entrants aux déclencheurs basés sur des requêtes.

Étapes suivantes