Partager via


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 :

    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.

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

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

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

    Capture d'écran montrant le flux de travail de consommation et le déclencheur de demande 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 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.

    Capture d'écran montrant le flux de travail de consommation, le déclencheur de demande et le rappel d'inclure l'en-tête

    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.

      Capture d'écran montrant le flux de travail de la consommation, le déclencheur de demande et l'option

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

      Capture d'écran montrant le flux de travail de consommation, le déclencheur de demande et l'échantillon de données utiles saisies 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"
            }
         }
      }
      
  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é additionalProperties, 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 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 :

    Capture d'écran montrant le workflow de consommation, le déclencheur de demande et l'ajout du paramètre

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

    Capture d'écran montrant le flux de travail de la consommation, le déclencheur de demande, et la liste

  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.

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

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

    Capture d'écran montrant le portail Azure, le workflow de consommation et les informations sur l'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

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

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

Étapes suivantes