Binnenkomende HTTPS-aanroepen naar werkstromen in Azure Logic Apps ontvangen en erop reageren

Van toepassing op: Azure Logic Apps (Verbruik + Standard)

Deze handleiding laat zien hoe u een werkstroom voor een logische app maakt die een binnenkomende HTTPS-aanvraag of aanroep van een andere service kan ontvangen en verwerken met behulp van de ingebouwde trigger Aanvraag. Wanneer uw werkstroom deze trigger gebruikt, kunt u vervolgens reageren op de HTTPS-aanvraag met behulp van de ingebouwde reactieactie.

Notitie

De actie Antwoord werkt alleen wanneer u de aanvraagtrigger gebruikt.

In deze lijst worden bijvoorbeeld enkele taken beschreven die uw werkstroom kan uitvoeren wanneer u de actie Aanvraagtrigger en Antwoord gebruikt:

  • Een HTTPS-aanvraag voor gegevens in een on-premises database ontvangen en erop reageren.

  • Een HTTPS-aanvraag ontvangen en erop reageren die is verzonden vanuit een andere werkstroom voor logische apps.

  • Een werkstroomuitvoering activeren wanneer een externe webhook-gebeurtenis plaatsvindt.

Als u uw werkstroom wilt uitvoeren door in plaats daarvan een uitgaande of uitgaande aanvraag te verzenden, gebruikt u de ingebouwde HTTP-trigger of de ingebouwde HTTP-actie.

Vereisten

  • Een Azure-account en -abonnement. Als u geen abonnement hebt, kunt u zich registreren voor een gratis Azure-account.

  • De werkstroom van de logische app waar u de binnenkomende HTTPS-aanvraag wilt ontvangen. Als u uw werkstroom wilt starten met een aanvraagtrigger, moet u beginnen met een lege werkstroom. Als u de actie Antwoord wilt gebruiken, moet uw werkstroom beginnen met de aanvraagtrigger.

Een aanvraagtrigger toevoegen

De aanvraagtrigger maakt een handmatig aanroepbaar eindpunt dat alleen binnenkomende aanvragen via HTTPS verwerkt. Wanneer de aanroeper een aanvraag naar dit eindpunt verzendt, wordt de aanvraagtrigger geactiveerd en wordt de werkstroom uitgevoerd. Raadpleeg werkstromen aanroepen, activeren of nesten met HTTPS-eindpunten in Azure Logic Apps voor informatie over het aanroepen van deze trigger.

  1. Open in Azure Portal uw logische app Verbruik en een lege werkstroom in de ontwerpfunctie.

  2. Volg deze algemene stappen in de ontwerpfunctie om de ingebouwde aanvraagtrigger te zoeken en toe te voegen met de naam Wanneer een HTTP-aanvraag wordt ontvangen.

  3. Nadat het triggerinformatievak wordt weergegeven, geeft u de volgende informatie op, indien nodig:

    Eigenschapsnaam JSON-eigenschapsnaam Vereist Beschrijving
    HTTP POST-URL {none} Ja De eindpunt-URL die wordt gegenereerd nadat u uw werkstroom hebt opgeslagen en wordt gebruikt voor het verzenden van een aanvraag die uw werkstroom activeert.
    JSON-schema aanvraagbody schema Nee Het JSON-schema waarin de eigenschappen en waarden in de hoofdtekst van de binnenkomende aanvraag worden beschreven. De ontwerpfunctie gebruikt dit schema om tokens te genereren voor de eigenschappen in de aanvraag. Op die manier kan uw werkstroom uitvoer van de aanvraagtrigger parseren, gebruiken en doorgeven in uw werkstroom.

    Als u geen JSON-schema hebt, kunt u het schema genereren op basis van een voorbeeldpayload met behulp van de voorbeeldpayload om schemamogelijkheden te genereren.

    In het volgende voorbeeld ziet u een voorbeeld van een JSON-schema:

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

    In het volgende voorbeeld ziet u het volledige JSON-voorbeeldschema:

    {
       "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"
                      }
                   }
                }
             }
          }
       }
    }
    

    Wanneer u een JSON-schema invoert, toont de ontwerper een herinnering om de header Content-Type op te nemen in uw aanvraag en die headerwaarde in te stellen op application/json. Zie Inhoudstypen verwerken voor meer informatie.

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

    In het volgende voorbeeld ziet u hoe de header Content-Type wordt weergegeven in JSON-indeling:

    {
       "Content-Type": "application/json"
    }
    

    Als u een JSON-schema wilt genereren dat is gebaseerd op de verwachte nettolading (gegevens), kunt u een hulpprogramma zoals JSONSchema.net gebruiken of u kunt de volgende stappen uitvoeren:

    1. Selecteer In de aanvraagtrigger voorbeeldpayload gebruiken om een schema te genereren.

      Screenshot showing Consumption workflow, Request trigger, and

    2. Voer de nettolading van het voorbeeld in en selecteer Gereed.

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

      In het volgende voorbeeld ziet u de voorbeeldpayload:

      {
         "account": {
            "name": "Contoso",
            "ID": "12345",
            "address": {
               "number": "1234",
               "street": "Anywhere Street",
               "city": "AnyTown",
               "state": "AnyState",
               "country": "USA",
               "postalCode": "11111"
            }
         }
      }
      
  4. Als u wilt controleren of de binnenkomende aanroep een aanvraagbody heeft die overeenkomt met het opgegeven schema, voert u de volgende stappen uit:

    1. Als u wilt afdwingen dat het binnenkomende bericht dezelfde exacte velden bevat die in uw schema worden beschreven, voegt u de required eigenschap toe en geeft u de vereiste velden op. Voeg de addtionalProperties eigenschap toe en stel de waarde in op false.

      In het volgende schema wordt bijvoorbeeld aangegeven dat het binnenkomende bericht het msg veld moet hebben en geen andere velden:

      {
         "properties": {
           "msg": {
              "type": "string"
           }
         },
         "type": "object",
         "required": ["msg"],
         "additionalProperties": false
      }
      
    2. Selecteer in de titelbalk van de aanvraagtrigger de knop met weglatingstekens (...).

    3. Schakel in de instellingen van de trigger schemavalidatie in en selecteer Gereed.

      Als de aanvraagbody van de binnenkomende aanroep niet overeenkomt met uw schema, retourneert de trigger een HTTP 400-fout met ongeldige aanvragen .

  5. Als u andere eigenschappen of parameters aan de trigger wilt toevoegen, opent u de lijst Nieuwe parameters toevoegen en selecteert u de parameters die u wilt toevoegen.

    Eigenschapsnaam JSON-eigenschapsnaam Vereist Beschrijving
    Methode method Nee De methode die de binnenkomende aanvraag moet gebruiken om de logische app aan te roepen
    Relatief pad relativePath Nee Het relatieve pad voor de parameter die de eindpunt-URL van de logische app kan accepteren

    In het volgende voorbeeld wordt de eigenschap Methode toegevoegd:

    Screenshot showing Consumption workflow, Request trigger, and adding the

    De eigenschap Methode wordt weergegeven in de trigger, zodat u een methode in de lijst kunt selecteren.

    Screenshot showing Consumption workflow, Request trigger, and the

  6. Sla uw werkstroom op wanneer u klaar bent. Selecteer in de werkbalk van de ontwerper Opslaan.

    Met deze stap wordt de URL gegenereerd die u kunt gebruiken om een aanvraag te verzenden waarmee de werkstroom wordt geactiveerd.

  7. Als u de gegenereerde URL wilt kopiëren, selecteert u het kopieerpictogram naast de URL.

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

    Notitie

    Als u het hash- of hekje (#) wilt opnemen in de URI wanneer u een aanroep naar de aanvraagtrigger maakt, gebruikt u in plaats daarvan deze gecodeerde versie: %25%23

Ga nu verder met het bouwen van uw werkstroom door een andere actie toe te voegen als de volgende stap. U kunt bijvoorbeeld reageren op de aanvraag door een antwoordactie toe te voegen, die u kunt gebruiken om een aangepast antwoord te retourneren en verderop in dit artikel wordt beschreven.

Notitie

Uw werkstroom houdt een binnenkomende aanvraag slechts gedurende een beperkte tijd open. Ervan uitgaande dat uw werkstroom ook een antwoordactie bevat, als uw werkstroom na deze tijd geen antwoord retourneert naar de beller, retourneert uw werkstroom de time-outstatus van 504 GATEWAY naar de beller. Als uw werkstroom geen antwoordactie bevat, retourneert uw werkstroom onmiddellijk de status GEACCEPTEERD van 202 aan de beller.

Voor informatie over beveiliging, autorisatie en versleuteling voor binnenkomende aanroepen naar uw werkstroom, zoals Transport Layer Security (TLS), voorheen BEKEND als Secure Sockets Layer (SSL), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), waarbij uw logische app-resource beschikbaar wordt gemaakt met Azure API Management, of het beperken van de IP-adressen die afkomstig zijn van binnenkomende aanroepen, raadpleegt u Beveiligde toegang en gegevens - Toegang voor binnenkomende aanroepen naar op aanvragen gebaseerde triggers.

Triggeruitvoer

De volgende tabel bevat de uitvoer van de aanvraagtrigger:

JSON-eigenschapsnaam Gegevenstype Omschrijving
Headers Object Een JSON-object dat de headers van de aanvraag beschrijft
hoofdtekst Object Een JSON-object dat de hoofdtekstinhoud van de aanvraag beschrijft

Een antwoordactie toevoegen

Wanneer u de aanvraagtrigger gebruikt om binnenkomende aanvragen te ontvangen, kunt u het antwoord modelleren en de nettoladingresultaten terugsturen naar de beller met behulp van de ingebouwde reactieactie, die alleen werkt met de aanvraagtrigger. Deze combinatie met de actie Aanvraagtrigger en Antwoord maakt het patroon aanvraagantwoord. Behalve binnen Foreach-lussen en Until-lussen en parallelle vertakkingen, kunt u de actie Antwoord overal in uw werkstroom toevoegen.

Belangrijk

  • Als uw antwoordactie de volgende headers bevat, verwijdert Azure Logic Apps deze headers automatisch uit het gegenereerde antwoordbericht zonder dat er een waarschuwing of fout wordt weergegeven. Azure Logic Apps bevat deze headers niet, hoewel de service u niet stopt met het opslaan van werkstromen met een antwoordactie met deze headers.

    • Allow
    • Content-* headers, met uitzondering van Content-Disposition, Content-Encodingen Content-Type wanneer u POST- en PUT-bewerkingen gebruikt, maar niet zijn opgenomen voor GET-bewerkingen
    • Cookie
    • Expires
    • Last-Modified
    • Set-Cookie
    • Transfer-Encoding
  • Als u een of meer antwoordacties in een complexe werkstroom met vertakkingen hebt, moet u ervoor zorgen dat de werkstroom ten minste één antwoordactie tijdens runtime verwerkt. Als alle antwoordacties worden overgeslagen, ontvangt de beller een fout van 502 Ongeldige gateway , zelfs als de werkstroom is voltooid.

  • In een stateless werkstroom van een standaard logische app moet de actie Antwoord als laatste worden weergegeven in uw werkstroom. Als de actie ergens anders wordt weergegeven, wordt de actie nog steeds niet uitgevoerd in Azure Logic Apps totdat alle andere acties zijn uitgevoerd.

  1. Volg deze algemene stappen in de werkstroomontwerper om de ingebouwde antwoordactie Antwoord te zoeken en toe te voegen met de naam Antwoord.

    Voor het gemak tonen de volgende voorbeelden een samengevouwen aanvraagtrigger.

  2. Voeg in het informatievak van de actie de vereiste waarden voor het antwoordbericht toe.

    Eigenschapsnaam JSON-eigenschapsnaam Vereist Beschrijving
    Statuscode statusCode Ja De statuscode die moet worden geretourneerd in het antwoord
    Kopteksten headers Nee Een JSON-object dat een of meer headers beschrijft die in het antwoord moeten worden opgenomen
    Tekst body Nee De hoofdtekst van het antwoord

    Wanneer u in tekstvelden selecteert, wordt de lijst met dynamische inhoud automatisch geopend. Vervolgens kunt u tokens selecteren die eventuele beschikbare uitvoer van de vorige stappen in de werkstroom vertegenwoordigen. De eigenschappen uit het schema dat u opgeeft, worden ook weergegeven in deze lijst met dynamische inhoud. U kunt deze eigenschappen selecteren die u in uw werkstroom wilt gebruiken.

    Neem bijvoorbeeld in het veld Headers inhoudstype op als sleutelnaam en stel de sleutelwaarde in op application/json, zoals eerder in dit artikel is vermeld. Voor het vak Hoofdtekst kunt u de uitvoer van de triggertekst selecteren in de lijst met dynamische inhoud.

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

    Als u de kopteksten in JSON-indeling wilt weergeven, selecteert u Overschakelen naar de tekstweergave.

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

  3. Als u meer eigenschappen wilt toevoegen voor de actie, zoals een JSON-schema voor de hoofdtekst van het antwoord, selecteert u in de lijst Nieuwe parameters toevoegen de parameters die u wilt toevoegen.

  4. Sla uw werkstroom op wanneer u klaar bent. Selecteer in de werkbalk van de ontwerper Opslaan.

Uw werkstroom testen

Als u uw werkstroom wilt testen, verzendt u een HTTP-aanvraag naar de gegenereerde URL. U kunt bijvoorbeeld een hulpprogramma zoals Postman gebruiken om de HTTP-aanvraag te verzenden. Voor meer informatie over de onderliggende JSON-definitie van de trigger en het aanroepen van deze trigger, raadpleegt u deze onderwerpen, het type aanvraagtrigger en het aanroepen, activeren of nesten van werkstromen met HTTP-eindpunten in Azure Logic Apps.

Verificatie en beveiliging

In een standaardwerkstroom voor logische apps die begint met de aanvraagtrigger (maar niet een webhooktrigger), kunt u de Azure Functions-inrichting gebruiken voor het verifiëren van binnenkomende aanroepen die zijn verzonden naar het eindpunt dat door die trigger is gemaakt met behulp van een beheerde identiteit. Deze inrichting wordt ook wel 'Easy Auth' genoemd. Raadpleeg Triggerwerkstromen in Standaard logische apps met Easy Auth voor meer informatie.

Voor meer informatie over beveiliging, autorisatie en versleuteling voor binnenkomende aanroepen naar uw werkstroom voor logische apps, zoals Transport Layer Security (TLS), voorheen BEKEND als Secure Sockets Layer (SSL), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), waarmee uw logische app beschikbaar wordt gemaakt met Azure API Management of het beperken van de IP-adressen die afkomstig zijn van binnenkomende aanroepen, raadpleegt u Beveiligde toegang en gegevens - Toegang voor binnenkomende aanroepen naar op aanvragen gebaseerde triggers.

Volgende stappen