Delen via


Ontvang en reageer op binnenkomende HTTPS-aanroepen die naar werkstromen in Azure Logic Apps worden verzonden.

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 van een andere service kan ontvangen en verwerken met behulp van de ingebouwde trigger Aanvraag . Wanneer uw werkstroom deze trigger gebruikt, kan de werkstroom reageren op de HTTPS-aanroep met behulp van de ingebouwde antwoordactie.

Notitie

De actie Antwoord werkt alleen wanneer u de aanvraagtrigger gebruikt.

Uw werkstroom kan bijvoorbeeld de volgende taken 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

  • Installeer of gebruik een hulpprogramma waarmee HTTP-aanvragen kunnen worden verzonden om uw oplossing te testen, bijvoorbeeld:

    Let op

    Voor scenario's waarin u gevoelige gegevens hebt, zoals referenties, geheimen, toegangstokens, API-sleutels en andere vergelijkbare informatie, moet u een hulpprogramma gebruiken waarmee uw gegevens worden beveiligd met de benodigde beveiligingsfuncties. Het hulpprogramma moet offline of lokaal werken en u hoeft zich niet aan te melden bij een onlineaccount of gegevens naar de cloud te synchroniseren. Wanneer u een hulpprogramma met deze kenmerken gebruikt, vermindert u het risico dat gevoelige gegevens openbaar worden gemaakt voor het publiek.

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. Voor informatie over het aanroepen van deze trigger, zie Werkstromen aanroepen, activeren of nesten met HTTPS-eindpunten in Azure Logic Apps.

  1. In de Azure portal, open uw logische app-resource voor verbruik.

  2. Selecteer in het zijbalkmenu onder Ontwikkelhulpprogramma's de ontwerpfunctie om uw lege werkstroom te openen.

  3. Voeg de ingebouwde trigger Request genaamd Wanneer een HTTP-verzoek wordt ontvangen toe aan uw werkstroom door de algemene stappen te volgen voor het toevoegen van een trigger.

  4. Nadat het triggerinformatievak wordt weergegeven, geeft u de volgende informatie op:

    Eigenschapsnaam JSON-eigenschapsnaam Vereist Beschrijving
    HTTP-URL {geen} 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:

    Schermopname van verbruikswerkstroom en aanvraagtrigger met voorbeeld-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, kan de ontwerper een herinnering weergeven om de Content-Type header in uw aanvraag op te nemen en die headerwaarde in te stellen op application/json. Zie Inhoudstypen verwerken voor meer informatie.

    In het volgende voorbeeld ziet u hoe de Content-Type header 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 json-schema.org gebruiken of u kunt de volgende stappen uitvoeren:

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

      Schermopname van de werkstroom Verbruik, aanvraagtrigger en de optie voor het gebruik van een voorbeeldpayload om een schema te genereren.

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

      Schermopname van de consumptieworkflow, verzoektrigger en voorbeeldpayload die is ingevoerd om een schema te genereren.

      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"
            }
         }
      }
      
  5. 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 additionalProperties 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 de aanvraagtrigger in de ontwerper. Selecteer in het informatievenster dat wordt geopend het tabblad Instellingen .

    3. Vouw gegevensverwerking uit en stel Schemavalidatie in op Aan.

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

  6. Selecteer in de lijst Methode de methode die de trigger verwacht te gebruiken voor binnenkomende aanvragen.

    Schermopname van de standaardwerkstroom, aanvraagtrigger en de lijst Methode die is geopend met een methode geselecteerd.

  7. Als er andere parameters voor de trigger bestaan, opent u de lijst met geavanceerde parameters en selecteert u de gewenste parameters.

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

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

    Schermopname met de knop Verbruikswerkstroom, aanvraagtrigger en knop URL-kopie geselecteerd.

    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, verificatie en versleuteling voor binnenkomende oproepen naar uw workflow, zoals Transport Layer Security (TLS), OAuth met Microsoft Entra ID, Shared Access Signatures (SAS), het blootstellen van uw logische app-resource met Azure API Management, of het beperken van IP-adressen die binnenkomende oproepen initiëren, zie Access voor binnenkomende triggers.

Triggeruitvoer

De volgende tabel bevat de uitvoer van de aanvraagtrigger:

JSON-eigenschapsnaam Gegevenstype Beschrijving
headers Voorwerp Een JSON-object dat de headers van de aanvraag beschrijft
body Voorwerp 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 Voor elke lussen, 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, maar voorkomt niet dat u werkstromen opslaat die een Response-actie met deze headers bevatten.

    • Allow
    • Content-* headers, met uitzondering van Content-Disposition, Content-Encoding en 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. In de Azure portal, open uw logische app-resource voor verbruik.

  2. Selecteer in het zijbalkmenu onder Ontwikkelhulpprogramma's de ontwerpfunctie om de werkstroom te openen.

    In deze voorbeeldwerkstroom wordt de aanvraagtrigger gebruikt die in de vorige sectie is toegevoegd.

  3. Voeg de ingebouwde antwoordactie toe aan uw werkstroom door de algemene stappen te volgen om een actie toe te voegen.

  4. 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, krijgt u de opties om de lijst met dynamische inhoud (bliksempictogram) of de expressie-editor (functiepictogram) te openen. Wanneer u de lijst met dynamische inhoud kiest, kunt u uitvoer selecteren die beschikbaar zijn in eerdere stappen in de werkstroom. Als u een schema hebt opgegeven in de aanvraagtrigger, worden de schema-eigenschappen ook weergegeven in de lijst met dynamische inhoud en kunt u deze gebruiken in uw werkstroom.

    In het veld Headers gebruikt u bijvoorbeeld Content-Type als sleutelnaam en stelt u de sleutelwaarde in op application/json , zoals eerder in dit artikel is vermeld. Voor het vak Hoofdtekst kunt u de lijst met dynamische inhoud openen en de uitvoer van de triggertekst selecteren.

    Schermopname met informatie over Azure Portal, Gebruikswerkstroom en Reactieactie.

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

    Schermopname van Azure Portal, verbruikswerkstroom en antwoordactie-headers in Overschakelen naar tekstweergave.

  5. Als er andere parameters voor de actie bestaan, opent u de lijst met geavanceerde parameters en selecteert u de gewenste parameters.

  6. Sla uw werkstroom op als u gereed bent. Selecteer in de werkbalk van de ontwerper Opslaan.

Uw werkstroom testen

Als u uw werkstroom wilt activeren, verzendt u een HTTP-aanvraag naar de URL die is gegenereerd voor de aanvraagtrigger, inclusief de methode die de aanvraagtrigger verwacht, met behulp van uw HTTP-aanvraagprogramma en de bijbehorende instructies.

Zie de volgende artikelen voor meer informatie over de onderliggende JSON-definitie van de trigger en het aanroepen van deze trigger: Aanvraagtriggertype , trigger of nestwerkstromen 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. Zie Werkstromen activeren in Standaard logische apps met Easy Auth voor meer informatie.

Zie voor meer informatie over beveiliging, autorisatie en versleuteling van binnenkomende oproepen naar uw logische appworkflow, zoals Transport Layer Security (TLS), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), het openbaar maken van uw logische app via Azure API Management, of het beperken van IP-adressen van binnenkomende oproepen, Toegang voor binnenkomende oproepen tot op aanvraag gebaseerde triggers.