Recevoir et répondre aux appels HTTPS entrants à l’aide d’Azure Logic AppsReceive and respond to incoming HTTPS calls by using Azure Logic Apps

Avec Azure Logic Apps et le déclencheur de requête intégré ou l’action Réponse, vous pouvez créer des tâches et des workflows automatisés qui reçoivent et répondent aux requêtes HTTP entrantes.With Azure Logic Apps and the built-in Request trigger or Response action, you can create automated tasks and workflows that receive and respond to incoming HTTPS requests. Par exemple, vous pouvez appliquer les actions suivantes à votre application logique :For example, you can have your logic app:

  • Recevoir et répondre à une requête HTTP pour des données situées dans une base de données locale.Receive and respond to an HTTPS request for data in an on-premises database.
  • Déclencher un flux de travail lorsqu’un événement de webhook externe se produit.Trigger a workflow when an external webhook event happens.
  • Recevoir et répondre à un appel HTTPS en provenance d’une autre application logique.Receive and respond to an HTTPS call from another logic app.

Notes

Le déclencheur de demande prend en charge uniquement le protocole TLS (Transport Layer Security) 1.2 pour les appels entrants.The Request trigger supports only Transport Layer Security (TLS) 1.2 for incoming calls. Les appels sortants continuent à prendre en charge les protocoles TLS 1.0, 1.1 et 1.2.Outgoing calls continue to support TLS 1.0, 1.1, and 1.2. Si vous constatez des erreurs de liaison SSL, assurez-vous d’utiliser le protocole TLS 1.2.If you see SSL handshake errors, make sure that you use TLS 1.2. Pour les appels entrants, voici les suites de chiffrement prises en charge :For incoming calls, here are the supported cipher suites:

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Conditions préalables requisesPrerequisites

Ajouter un déclencheur de requêteAdd Request trigger

Ce déclencheur intégré crée un point de terminaison HTTPS qui peut être appelé manuellement et peut recevoir uniquement des requête HTTPS entrantes.This built-in trigger creates a manually callable HTTPS endpoint that can receive only incoming HTTPS requests. Lorsque cet événement se produit, le déclencheur s’active et exécute l’application logique.When this event happens, the trigger fires and runs the logic app. Pour plus d’informations sur la définition JSON sous-jacente du déclencheur et sur la façon d’appeler ce dernier, consultez 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.For more information about the trigger's underlying JSON definition and how to call this trigger, see the Request trigger type and Call, trigger, or nest workflows with HTTP endpoints in Azure Logic Apps.

  1. Connectez-vous au portail Azure.Sign in to the Azure portal. Créez une application logique vide.Create a blank logic app.

  2. Une fois que le concepteur Logic Apps s’ouvre, entrez « requête HTTP » comme filtre dans la zone de recherche.After Logic App Designer opens, in the search box, enter "http request" as your filter. Dans la liste de déclencheurs, sélectionnez le déclencheur Quand une requête HTTP est reçue, qui est la première étape du flux de travail de votre application logique.From the triggers list, select the When an HTTP request is received trigger, which is the first step in your logic app workflow.

    Sélectionner le déclencheur de requête

    Le déclencheur de requête affiche les propriétés suivantes :The Request trigger shows these properties:

    Déclencheur de requête

    Nom de la propriétéProperty name Nom de la propriété JSONJSON property name ObligatoireRequired DescriptionDescription
    URL HTTP POSTHTTP POST URL {aucune}{none} OuiYes L’URL de point de terminaison générée après l’enregistrement de l’application logique et utilisée pour appeler votre application logiqueThe endpoint URL that's generated after you save the logic app and is used for calling your logic app
    Schéma JSON du corps de la demandeRequest Body JSON Schema schema NonNo Schéma JSON qui décrit les propriétés et les valeurs dans le corps de la demande entranteThe JSON schema that describes the properties and values in the incoming request body
  3. Dans la zone Schéma JSON du corps de la demande, entrez éventuellement un schéma JSON qui décrit le corps de la demande entrante, par exemple :In the Request Body JSON Schema box, optionally enter a JSON schema that describes the body in the incoming request, for example:

    Exemple de schéma JSON

    Le concepteur utilise ce schéma pour générer des jetons pour les propriétés dans la requête.The designer uses this schema to generate tokens for the properties in the request. De cette façon, votre application logique peut analyser, consommer et transmettre les données de la requête via le déclencheur dans votre flux de travail.That way, your logic app can parse, consume, and pass along data from the request through the trigger into your workflow.

    Voici l'exemple de schéma :Here is the sample schema:

    {
       "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 affiche un rappel pour inclure l'en-tête Content-Type dans votre demande et définit cette valeur d’en-tête sur application/json.When you enter a JSON schema, the designer shows a reminder to include the Content-Type header in your request and set that header value to application/json. Pour plus d’informations, consultez l’article Gérer les types de contenu.For more information, see Handle content types.

    Rappel pour inclure l’en-tête « Content-type »

    Voici à quoi ressemble cet en-tête au format JSON :Here's what this header looks like in JSON format:

    {
       "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 :To generate a JSON schema that's based on the expected payload (data), you can use a tool such as JSONSchema.net, or you can follow these steps:

    1. Dans le déclencheur de requête, sélectionnez Utiliser l’exemple de charge utile pour générer le schéma.In the Request trigger, select Use sample payload to generate schema.

      Générer un schéma à partir de la charge utile

    2. Entrez l’exemple de charge utile, puis sélectionnez Terminé.Enter the sample payload, and select Done.

      Générer un schéma à partir de la charge utile

      Voici l'exemple de charge utile :Here is the sample payload:

      {
         "account": {
            "name": "Contoso",
            "ID": "12345",
            "address": { 
               "number": "1234",
               "street": "Anywhere Street",
               "city": "AnyTown",
               "state": "AnyState",
               "country": "USA",
               "postalCode": "11111"
            }
         }
      }
      
  4. Pour spécifier des propriétés supplémentaires, ouvrez la liste Ajouter un nouveau paramètre, puis sélectionnez les paramètres que vous souhaitez ajouter.To specify additional properties, open the Add new parameter list, and select the parameters that you want to add.

    Nom de la propriétéProperty name Nom de la propriété JSONJSON property name ObligatoireRequired DescriptionDescription
    MéthodeMethod method NonNo Méthode que les requêtes entrantes doivent utiliser pour appeler l’application logiqueThe method that the incoming request must use to call the logic app
    Chemin relatifRelative path relativePath NonNo Chemin relatif pour le paramètre que l’URL de point de terminaison de l’application logique peut accepterThe relative path for the parameter that the logic app's endpoint URL can accept

    L’exemple suivant ajoute la propriété Méthode :This example adds the Method property:

    Ajouter un paramètre de 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.The Method property appears in the trigger so that you can select a method from the list.

    Sélectionner la méthode

  5. À présent, ajoutez une autre action comme étape suivante dans votre flux de travail.Now, add another action as the next step in your workflow. Sous le déclencheur, sélectionnez Étape suivante afin de trouver l’action que vous souhaitez ajouter.Under the trigger, select Next step so that you can find the action that you want to add.

    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 cette rubrique.For example, you can respond to the request by adding a Response action, which you can use to return a customized response and is described later in this topic.

    Votre application logique garde la requête entrante ouverte seulement pendant une minute.Your logic app keeps the incoming request open only for one minute. En supposant que votre flux de travail d’application logique inclue une action Réponse, si l’application logique ne renvoie pas de réponse une fois ce délai écoulé, votre application logique renvoie un 504 GATEWAY TIMEOUT à l’appelant.Assuming that your logic app workflow includes a Response action, if the logic app doesn't return a response after this time passes, your logic app returns a 504 GATEWAY TIMEOUT to the caller. Dans le cas contraire, si votre application logique n’inclut pas d’action Réponse, votre application logique renvoie immédiatement une réponse 202 ACCEPTED à l’appelant.Otherwise, if your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED response to the caller.

  6. Lorsque vous avez terminé, enregistrez votre application logique.When you're done, save your logic app. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.On the designer toolbar, select Save.

    Cette étape génère l’URL à utiliser pour envoyer la requête qui déclenche l’application logique.This step generates the URL to use for sending the request that triggers the logic app. Pour copier cette URL, sélectionnez l’icône de copie en regard de l’URL.To copy this URL, select the copy icon next to the URL.

    URL à utiliser pour déclencher votre application logique

  7. Pour déclencher votre application logique, envoyez une requête HTTP à l’URL générée.To trigger your logic app, send an HTTP POST to the generated URL. Par exemple, vous pouvez utiliser un outil tel que Postman.For example, you can use a tool such as Postman.

Sorties du déclencheurTrigger outputs

Voici plus d’informations sur les sorties du déclencheur de requête :Here's more information about the outputs from the Request trigger:

Nom de la propriété JSONJSON property name Type de donnéesData type DescriptionDescription
headers ObjectObject Objet JSON qui décrit les en-têtes de la requêteA JSON object that describes the headers from the request
body ObjectObject Objet JSON qui décrit le contenu du corps de la requêteA JSON object that describes the body content from the request

Ajouter une action RéponseAdd a Response action

Vous pouvez utiliser l’action Réponse pour répondre avec une charge utile (données) à une requête HTTPS entrante, mais uniquement dans une application logique qui est déclenchée par une requête HTTPS.You can use the Response action to respond with a payload (data) to an incoming HTTPS request but only in a logic app that's triggered by an HTTPS request. Vous pouvez ajouter l’action Réponse à n’importe quelle phase de votre workflow.You can add the Response action at any point in your workflow. Pour plus d’informations sur la définition JSON sous-jacente pour ce déclencheur, consultez Type d’action de réponse.For more information about the underlying JSON definition for this trigger, see the Response action type.

Votre application logique garde la requête entrante ouverte seulement pendant une minute.Your logic app keeps the incoming request open only for one minute. En supposant que votre flux de travail d’application logique inclue une action Réponse, si l’application logique ne renvoie pas de réponse une fois ce délai écoulé, votre application logique renvoie un 504 GATEWAY TIMEOUT à l’appelant.Assuming that your logic app workflow includes a Response action, if the logic app doesn't return a response after this time passes, your logic app returns a 504 GATEWAY TIMEOUT to the caller. Dans le cas contraire, si votre application logique n’inclut pas d’action Réponse, votre application logique renvoie immédiatement une réponse 202 ACCEPTED à l’appelant.Otherwise, if your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED response to the caller.

  1. Pour le Concepteur d'application logique, sous l’étape où vous souhaitez ajouter l'action Réponse, sélectionnez Nouvelle étape.In the Logic App Designer, under the step where you want to add a Response action, select New step.

    Par exemple, avec le déclencheur de requête vu plus tôt :For example, using the Request trigger from earlier:

    Ajouter une nouvelle étape

    Pour ajouter une action entre des étapes, placez votre pointeur au-dessus de la flèche qui les sépare.To add an action between steps, move your pointer over the arrow between those steps. Cliquez sur le signe ( + ) qui s’affiche, puis sélectionnez Ajouter une action.Select the plus sign (+) that appears, and then select Add an action.

  2. Sous Choisir une action, dans la zone de recherche, entrez « réponse » comme filtre, puis sélectionnez l'action Réponse.Under Choose an action, in the search box, enter "response" as your filter, and select the Response action.

    Sélectionner l’action Réponse

    Le déclencheur de requête est réduit dans cet exemple pour des raisons de simplicité.The Request trigger is collapsed in this example for simplicity.

  3. Ajoutez toutes les valeurs requises pour le message de réponse.Add any values that are required for the response message.

    Dans certains champs, cliquer dans leurs zones ouvre la liste de contenu dynamique.In some fields, clicking inside their boxes opens the dynamic content list. Vous pouvez ensuite sélectionner des jetons qui représentent les sorties disponibles à partir des étapes précédentes du workflow.You can then select tokens that represent available outputs from previous steps in the workflow. Les propriétés du schéma spécifié dans l’exemple précédent apparaissent désormais dans la liste de contenu dynamique.Properties from the schema specified in the earlier example now appear in the dynamic content list.

    Par exemple, pour la zone En-têtes, incluez Content-Type comme nom de clé et définissez la valeur de clé sur application/json comme indiqué précédemment dans cette rubrique.For example, for the Headers box, include Content-Type as the key name, and set the key value to application/json as mentioned earlier in this topic. Pour la zone Corps, vous pouvez sélectionner la sortie du corps du déclencheur dans la liste de contenu dynamique.For the Body box, you can select the trigger body output from the dynamic content list.

    Détails de l’action Réponse

    Pour afficher les en-têtes au format JSON, sélectionnez Basculer vers la vue texte.To view the headers in JSON format, select Switch to text view.

    En-têtes - Basculer vers la vue texte

    Voici plus d’informations sur les propriétés que vous pouvez définir dans l’action Réponse.Here is more information about the properties that you can set in the Response action.

    Nom de la propriétéProperty name Nom de la propriété JSONJSON property name ObligatoireRequired DescriptionDescription
    Code d’étatStatus Code statusCode OuiYes Code d’état à retourner dans la réponseThe status code to return in the response
    En-têtesHeaders headers NonNo Objet JSON qui décrit un ou plusieurs en-têtes à inclure dans la réponseA JSON object that describes one or more headers to include in the response
    CorpsBody body NonNo Le corps de texte de la réponseThe response body
  4. Pour spécifier des propriétés supplémentaires, comme un schéma JSON pour le corps de la réponse, ouvrez la liste Ajouter un nouveau paramètre, puis sélectionnez les paramètres que vous souhaitez ajouter.To specify additional properties, such as a JSON schema for the response body, open the Add new parameter list, and select the parameters that you want to add.

  5. Lorsque vous avez terminé, enregistrez votre application logique.When you're done, save your logic app. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.On the designer toolbar, select Save.

Étapes suivantesNext steps