Ta emot och svara på inkommande HTTPS-anrop till arbetsflöden i Azure Logic Apps
Gäller för: Azure Logic Apps (Förbrukning + Standard)
Den här instruktionsguiden visar hur du skapar ett logikapparbetsflöde som kan ta emot och hantera en inkommande HTTPS-begäran eller ett samtal från en annan tjänst med hjälp av den inbyggda utlösaren Förfrågning. När arbetsflödet använder den här utlösaren kan du sedan svara på HTTPS-begäran med hjälp av den inbyggda åtgärden Svar.
Kommentar
Åtgärden Svar fungerar bara när du använder utlösaren Förfrågning .
I den här listan beskrivs till exempel några uppgifter som arbetsflödet kan utföra när du använder åtgärden Begärandeutlösare och Svar:
Ta emot och svara på en HTTPS-begäran om data i en lokal databas.
Ta emot och svara på en HTTPS-begäran som skickas från ett annat logikapparbetsflöde.
Utlös en arbetsflödeskörning när en extern webhook-händelse inträffar.
Om du vill köra arbetsflödet genom att skicka en utgående eller utgående begäran i stället använder du den inbyggda HTTP-utlösaren eller den inbyggda HTTP-åtgärden.
Förutsättningar
Ett Azure-konto och prenumeration. Om du inte har en prenumeration kan du registrera dig för ett kostnadsfritt Azure-konto.
Arbetsflödet för logikappen där du vill ta emot den inkommande HTTPS-begäran. Om du vill starta arbetsflödet med en utlösare för begäran måste du börja med ett tomt arbetsflöde. Om du vill använda åtgärden Svar måste arbetsflödet börja med utlösaren Förfrågning .
Installera eller använd ett verktyg som kan skicka HTTP-begäranden för att testa din lösning, till exempel:
- Visual Studio Code med ett tillägg från Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge – verktyg för nätverkskonsol
- Bruno
- hårlock
Varning
För scenarier där du har känsliga data, till exempel autentiseringsuppgifter, hemligheter, åtkomsttoken, API-nycklar och annan liknande information, bör du använda ett verktyg som skyddar dina data med nödvändiga säkerhetsfunktioner, fungerar offline eller lokalt, inte synkroniserar dina data till molnet och inte kräver att du loggar in på ett onlinekonto. På så sätt minskar du risken för att exponera känsliga data för allmänheten.
Lägga till en utlösare för begäran
Utlösaren Förfrågning skapar en manuellt anropsbar slutpunkt som endast hanterar inkommande begäranden via HTTPS. När anroparen skickar en begäran till den här slutpunkten utlöses utlösaren Förfrågning och kör arbetsflödet. Information om hur du anropar den här utlösaren finns i Anropa, utlösa eller kapsla arbetsflöden med HTTPS-slutpunkter i Azure Logic Apps.
I Azure Portal öppnar du logikappen Förbrukning och ett tomt arbetsflöde i designern.
När informationsrutan för utlösaren visas anger du följande information efter behov:
Egenskapsnamn JSON-egenskapsnamn Obligatoriskt Beskrivning HTTP POST-URL {none} Ja Slutpunkts-URL:en som genereras när du har sparat arbetsflödet och används för att skicka en begäran som utlöser arbetsflödet. JSON-schema för begärandetext schema
Nej JSON-schemat som beskriver egenskaperna och värdena i den inkommande begärandetexten. Designern använder det här schemat för att generera token för egenskaperna i begäran. På så sätt kan arbetsflödet parsa, använda och skicka utdata från utlösaren Begäran till arbetsflödet.
Om du inte har ett JSON-schema kan du generera schemat från en exempelnyttolast med hjälp av nyttolasten Använd exempel för att generera schemakapacitet .I följande exempel visas ett JSON-exempelschema:
I följande exempel visas det fullständiga JSON-exempelschemat:
{ "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" } } } } } } }
När du anger ett JSON-schema visar designern en påminnelse om att inkludera rubriken Content-Type i din begäran och ange rubrikvärdet till application/json. Mer information finns i Hantera innehållstyper.
I följande exempel visas hur rubriken Innehållstyp visas i JSON-format:
{ "Content-Type": "application/json" }
Om du vill generera ett JSON-schema som baseras på den förväntade nyttolasten (data) kan du använda ett verktyg som JSONSchema.net, eller så kan du följa dessa steg:
I utlösaren Begäran väljer du Använd exempelnyttolast för att generera schema.
Ange exempelnyttolasten och välj Klar.
I följande exempel visas exempelnyttolasten:
{ "account": { "name": "Contoso", "ID": "12345", "address": { "number": "1234", "street": "Anywhere Street", "city": "AnyTown", "state": "AnyState", "country": "USA", "postalCode": "11111" } } }
Följ dessa steg för att kontrollera att det inkommande anropet har en begärandetext som matchar ditt angivna schema:
Om du vill framtvinga att inkommande meddelande har samma exakta fält som schemat beskriver lägger du till
required
egenskapen i schemat och anger de obligatoriska fälten. Lägg till egenskapenaddtionalProperties
och ange värdet tillfalse
.Följande schema anger till exempel att det inkommande meddelandet måste ha
msg
fältet och inte några andra fält:{ "properties": { "msg": { "type": "string" } }, "type": "object", "required": ["msg"], "additionalProperties": false }
I namnlisten för begärandeutlösaren väljer du knappen ellipser (...).
I utlösarens inställningar aktiverar du Schemaverifiering och väljer Klar.
Om det inkommande samtalets begärandetext inte matchar schemat returnerar utlösaren ett HTTP 400-fel med felaktig begäran .
Om du vill lägga till andra egenskaper eller parametrar i utlösaren öppnar du listan Lägg till ny parameter och väljer de parametrar som du vill lägga till.
Egenskapsnamn JSON-egenskapsnamn Obligatoriskt Beskrivning Metod method
Nej Den metod som den inkommande begäran måste använda för att anropa logikappen Relativ sökväg relativePath
Nej Den relativa sökvägen för parametern som logikappens slutpunkts-URL kan acceptera I följande exempel läggs egenskapen Metod till:
Egenskapen Metod visas i utlösaren så att du kan välja en metod i listan.
Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.
Det här steget genererar den URL som du kan använda för att skicka en begäran som utlöser arbetsflödet.
Om du vill kopiera den genererade URL:en väljer du kopieringsikonen bredvid URL:en.
Kommentar
Om du vill inkludera hash- eller pundsymbolen (#) i URI:n när du gör ett anrop till begärandeutlösaren använder du den här kodade versionen i stället:
%25%23
Fortsätt nu att skapa arbetsflödet genom att lägga till ytterligare en åtgärd som nästa steg. Du kan till exempel svara på begäran genom att lägga till en svarsåtgärd som du kan använda för att returnera ett anpassat svar och beskrivs senare i den här artikeln.
Kommentar
Arbetsflödet håller endast en inkommande begäran öppen under en begränsad tid. Förutsatt att arbetsflödet även innehåller en svarsåtgärd returnerar arbetsflödet inte ett svar till anroparen när den här tiden har gått ut, returnerar arbetsflödet 504 GATEWAY TIMEOUT-status till anroparen. Om arbetsflödet inte innehåller någon svarsåtgärd returnerar arbetsflödet omedelbart statusen 202 ACCEPTED till anroparen.
Information om säkerhet, autentisering och kryptering för inkommande anrop till arbetsflödet, till exempel TLS (Transport Layer Security), tidigare känt som Secure Sockets Layer (SSL), OAuth med Microsoft Entra ID, Signaturer för delad åtkomst (SAS), exponera din logikappresurs med Azure API Management eller begränsa IP-adresser som kommer från inkommande anrop finns i Säker åtkomst och data – Åtkomst för inkommande anrop till begärandebaserade utlösare.
Utdata för utlösare
I följande tabell visas utdata från utlösaren Förfrågning :
JSON-egenskapsnamn | Datatyp | beskrivning |
---|---|---|
Headers | Objekt | Ett JSON-objekt som beskriver rubrikerna från begäran |
brödtext | Objekt | Ett JSON-objekt som beskriver brödtextinnehållet från begäran |
Lägg till en svarsåtgärd
När du använder utlösaren Begäran för att ta emot inkommande begäranden kan du modellera svaret och skicka nyttolastresultatet tillbaka till anroparen med hjälp av den inbyggda åtgärden Svar, som endast fungerar med utlösaren Begäran. Den här kombinationen med åtgärden Begärandeutlösare och Svar skapar mönstret för begäran-svar. Förutom i Foreach-loopar och Until-loopar och parallella grenar kan du lägga till åtgärden Svar var som helst i arbetsflödet.
Viktigt!
Om din svarsåtgärd innehåller följande rubriker tar Azure Logic Apps automatiskt bort dessa huvuden från det genererade svarsmeddelandet utan att visa någon varning eller något fel. Azure Logic Apps inkluderar inte dessa rubriker, även om tjänsten inte hindrar dig från att spara arbetsflöden som har en svarsåtgärd med dessa rubriker.
Allow
Content-*
sidhuvuden förutomContent-Disposition
,Content-Encoding
ochContent-Type
när du använder POST- och PUT-åtgärder, men ingår inte för GET-åtgärderCookie
Expires
Last-Modified
Set-Cookie
Transfer-Encoding
Om du har en eller flera svarsåtgärder i ett komplext arbetsflöde med grenar kontrollerar du att arbetsflödet bearbetar minst en svarsåtgärd under körningen. Om alla svarsåtgärder hoppas över får anroparen annars ett fel med 502 Felaktig gateway , även om arbetsflödet har slutförts.
I ett tillståndslöst arbetsflöde för standardlogikappen måste åtgärden Svar visas sist i arbetsflödet. Om åtgärden visas någon annanstans kör Azure Logic Apps fortfarande inte åtgärden förrän alla andra åtgärder har körts.
I arbetsflödesdesignern följer du de här allmänna stegen för att hitta och lägga till den inbyggda åtgärden Svar med namnet Svar.
För enkelhetens skull visar följande exempel en komprimerad utlösare för begäran .
Lägg till nödvändiga värden för svarsmeddelandet i åtgärdsinformationsrutan.
Egenskapsnamn JSON-egenskapsnamn Obligatoriskt Beskrivning Statuskod statusCode
Ja Statuskoden som ska returneras i svaret Rubriker headers
Nej Ett JSON-objekt som beskriver en eller flera rubriker som ska inkluderas i svaret Brödtext body
Nej Svarstexten När du väljer i alla textfält öppnas listan med dynamiskt innehåll automatiskt. Du kan sedan välja token som representerar alla tillgängliga utdata från föregående steg i arbetsflödet. Egenskaperna från schemat som du anger visas också i den här listan med dynamiskt innehåll. Du kan välja de här egenskaperna som ska användas i arbetsflödet.
I fältet Rubriker tar du till exempel med Content-Type som nyckelnamn och anger nyckelvärdet till application/json enligt ovan i den här artikeln. I rutan Brödtext kan du välja utdata för utlösarens brödtext från listan med dynamiskt innehåll.
Om du vill visa rubrikerna i JSON-format väljer du Växla till textvy.
Om du vill lägga till fler egenskaper för åtgärden, till exempel ett JSON-schema för svarstexten , väljer du de parametrar som du vill lägga till i listan Lägg till ny parameter .
Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.
Testa arbetsflödet
Om du vill utlösa arbetsflödet skickar du en HTTP-begäran till den URL som genererades för utlösaren Begäran , inklusive den metod som begärandeutlösaren förväntar sig, med hjälp av http-begärandeverktyget och dess instruktioner.
Mer information om utlösarens underliggande JSON-definition och hur du anropar den här utlösaren finns i dessa avsnitt, Typ av begärandeutlösare och Anropa, utlösa eller kapsla arbetsflöden med HTTP-slutpunkter i Azure Logic Apps.
Säkerhet och autentisering
I ett standardarbetsflöde för logikappar som börjar med utlösaren Förfrågning (men inte en webhook-utlösare) kan du använda Azure Functions-etableringen för att autentisera inkommande anrop som skickas till slutpunkten som skapats av utlösaren med hjälp av en hanterad identitet. Den här etableringen kallas även "Easy Auth". Mer information finns i Utlösa arbetsflöden i Standard-logikappar med Easy Auth.
Mer information om säkerhet, auktorisering och kryptering för inkommande anrop till logikappens arbetsflöde, till exempel TLS (Transport Layer Security), tidigare känt som Secure Sockets Layer (SSL), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), exponera logikappen med Azure API Management eller begränsa IP-adresser som kommer från inkommande anrop finns i Säker åtkomst och data – Åtkomst för inkommande anrop till begärandebaserade utlösare.