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 .
Installeer of gebruik een hulpprogramma waarmee HTTP-aanvragen kunnen worden verzonden om uw oplossing te testen, bijvoorbeeld:
- Visual Studio Code met een extensie van Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge - Hulpprogramma voor netwerkconsole
- Bruno
- curl
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, offline of lokaal werken, uw gegevens niet worden gesynchroniseerd met de cloud en u zich niet hoeft aan te melden bij een onlineaccount. Op deze manier 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. Raadpleeg werkstromen aanroepen, activeren of nesten met HTTPS-eindpunten in Azure Logic Apps voor informatie over het aanroepen van deze trigger.
Open in Azure Portal uw logische app Verbruik en een lege werkstroom in de ontwerpfunctie.
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.
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:
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.
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:
Selecteer In de aanvraagtrigger voorbeeldpayload gebruiken om een schema te genereren.
Voer de nettolading van het voorbeeld in en selecteer Gereed.
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" } } }
Als u wilt controleren of de binnenkomende aanroep een aanvraagbody heeft die overeenkomt met het opgegeven schema, voert u de volgende stappen uit:
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 deaddtionalProperties
eigenschap toe en stel de waarde in opfalse
.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 }
Selecteer in de titelbalk van de aanvraagtrigger de knop met weglatingstekens (...).
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 .
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:
De eigenschap Methode wordt weergegeven in de trigger, zodat u een methode in de lijst kunt selecteren.
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.
Als u de gegenereerde URL wilt kopiëren, selecteert u het kopieerpictogram naast de URL.
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 aanroepen naar uw werkstroom, zoals Transport Layer Security (TLS), voorheen SSL (Secure Sockets Layer), OAuth met Microsoft Entra ID, Shared Access Signatures (SAS), waarmee 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 | Beschrijving |
---|---|---|
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 vanContent-Disposition
,Content-Encoding
enContent-Type
wanneer u POST- en PUT-bewerkingen gebruikt, maar niet zijn opgenomen voor GET-bewerkingenCookie
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.
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 .
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.
Als u de kopteksten in JSON-indeling wilt weergeven, selecteert u Overschakelen naar de tekstweergave.
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.
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.
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.