Partager via


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

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

Ce guide montre comment créer un flux de travail d’application logique qui peut recevoir et gérer une requête HTTPS entrante d’un autre service à l’aide du déclencheur intégré de requête . Lorsque votre flux de travail utilise ce déclencheur, le flux de travail peut répondre à l’appel 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, votre flux de travail peut effectuer les tâches suivantes 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.

  • 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

  • Ressource d’application logique avec le flux de travail dans lequel vous souhaitez recevoir la requête HTTPS entrante.

    Pour démarrer votre flux de travail avec un déclencheur de requête , vous devez disposer d’un flux de travail vide. Pour utiliser l’action Réponse , votre flux de travail doit commencer par le déclencheur de requête .

    Si vous n’avez pas de ressource et de flux de travail d’application logique, créez-les maintenant en suivant les étapes de l’application logique souhaitée :

  • Installez ou utilisez un outil capable d’envoyer des requêtes HTTP pour tester votre solution, par exemple :

    Attention

    Pour les scénarios où vous avez des données sensibles, telles que 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. L’outil doit fonctionner hors connexion ou localement, et ne nécessite pas de se connecter à un compte en ligne ou de synchroniser des données sur le cloud. Lorsque vous utilisez un outil avec ces caractéristiques, vous réduisez le risque d’exposer des 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 l’appel de ce déclencheur, consultez Appeler, déclencher ou imbriquer des flux de travail avec des points de terminaison HTTPS dans Azure Logic Apps.

  1. Dans le portail Azure, ouvrez votre ressource d’application logique Consommation.

  2. Dans le menu de la barre latérale, sous Outils de développement, sélectionnez le concepteur pour ouvrir votre flux de travail vide.

  3. Ajoutez le déclencheur intégré de requête nommé Lorsqu'une requête HTTP est reçue à votre flux de travail en suivant les étapes générales pour ajouter un déclencheur.

  4. Une fois la zone d’informations du déclencheur affichée, fournissez les informations suivantes :

    Nom de la propriété Nom de la propriété JSON Obligatoire Descriptif
    HTTP URL {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 :

    Capture d’écran montrant le flux de travail consommation et le déclencheur de requête avec 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 entrez un schéma JSON, le concepteur peut afficher un rappel pour inclure l’en-tête Content-Type dans votre demande et définir cette valeur d’en-tête sur 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 apparaît 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 json-schema.org, ou suivre les étapes suivantes :

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

      Capture d’écran montrant le flux de travail Consommation, le déclencheur de requête et l’option permettant d’utiliser l’exemple de charge utile pour générer le schéma.

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

      Capture d’écran montrant le workflow de consommation, le déclencheur de requête et l’exemple de payload utilisé pour générer le schéma.

      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"
            }
         }
      }
      
  5. 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 additionalProperties propriété et définissez la valeur sur 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 le concepteur, sélectionnez Déclencheur de requête. Dans le volet d’information qui s’ouvre, sélectionnez l’onglet Paramètres.

    3. Développez Gestion des données et définissez Validation de schéma sur Activé.

      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.

  6. Dans la liste des méthodes , sélectionnez la méthode que le déclencheur attend que les requêtes entrantes utilisent.

    Capture d’écran montrant le flux de travail Standard, le déclencheur de requête et la liste de méthodes ouvertes avec une méthode sélectionnée.

  7. Si d’autres paramètres existent pour le déclencheur, ouvrez la liste des paramètres avancés et sélectionnez les paramètres souhaités.

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

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

    Capture d'écran montrant le flux de travail de consommation, le déclencheur de demande et le bouton de copie d'URL sélectionné.

    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 à votre flux de travail, tels que Transport Layer Security (TLS),OAuth avec l’ID Microsoft Entra, les signatures d’accès partagé (SAP), l’exposition de votre ressource d’application logique avec Gestion des API Azure ou la restriction des adresses IP qui proviennent des appels entrants, consultez Access 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 Descriptif
headers Objet Objet JSON qui décrit les en-têtes de la requête
body 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 de 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 à l’aide de l’action intégrée Réponse , qui fonctionne uniquement avec le déclencheur de requête . Cette combinaison avec le déclencheur de requête et l’action Réponse crée le modèle de demande-réponse. À l’exception des boucles For chaque et des boucles Until, et des branches parallèles, vous pouvez ajouter l’action Réponse n’importe où dans votre flux de travail.

Important

  • Si votre action Réponse inclut 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 portail Azure, ouvrez votre ressource d’application logique Consommation.

  2. Dans le menu de la barre latérale, sous Outils de développement, sélectionnez le concepteur pour ouvrir le flux de travail.

    Cet exemple de flux de travail utilise le déclencheur de requête ajouté dans la section précédente.

  3. Ajoutez l’action intégrée Réponse à votre flux de travail en suivant les étapes générales pour ajouter une action.

  4. 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 Obligatoire Descriptif
    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 de champs de texte, vous obtenez les options permettant d’ouvrir la liste de contenu dynamique (icône éclair) ou l’éditeur d’expressions (icône de fonction). Lorsque vous choisissez la liste de contenu dynamique, vous pouvez sélectionner des sorties disponibles à partir des étapes précédentes du flux de travail. Si vous avez spécifié un schéma dans le déclencheur de requête , les propriétés de schéma apparaissent également dans la liste de contenu dynamique et sont disponibles pour vous permettre d’utiliser dans votre flux de travail.

    Par exemple, dans le champ En-têtes , utilisez 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 ouvrir la liste de contenu dynamique et sélectionner la sortie de l'élément déclencheur.

    Capture d’écran montrant le portail Azure, le flux de travail de consommation et les informations d’action de réponse.

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

    Capture d'écran montrant le portail Azure, le flux de travail de la consommation et les en-têtes de l'action de réponse dans la vue Passer au texte.

  5. Si d’autres paramètres existent pour l’action, ouvrez la liste des paramètres avancés et sélectionnez les paramètres souhaités.

  6. 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 flux de travail, envoyez une requête HTTP à l’URL générée pour le déclencheur de requête, y compris la méthode attendue par le déclencheur de requête, à l’aide de votre outil de requête HTTP et de ses instructions.

Pour plus d’informations sur la définition JSON sous-jacente du déclencheur et sur la façon d’appeler ce déclencheur, consultez les articles suivants : Type de déclencheur de requête et Appel, déclencheur ou imbriquer des flux de travail 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 provision 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 connue sous le nom d’authentification facile. Pour plus d’informations, consultez Déclencher des flux de travail dans des applications logiques standard avec l’authentification simple.

Pour plus d’informations sur la sécurité, l’autorisation et le chiffrement des appels entrants vers votre flux de travail d’application logique, tels que Transport Layer Security (TLS), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth) , exposant votre application logique avec Gestion des API Azure ou limitant les adresses IP qui proviennent des appels entrants, consultez Access pour les appels entrants aux déclencheurs basés sur des requêtes.