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:

    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.

  1. I Azure Portal öppnar du logikappen Förbrukning och ett tomt arbetsflöde i designern.

  2. I designern följer du de här allmänna stegen för att hitta och lägga till den inbyggda utlösaren Begäran med namnet När en HTTP-begäran tas emot.

  3. 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:

    Skärmbild som visar arbetsflöde för förbrukning och utlösare för begäran med 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.

    Skärmbild som visar arbetsflöde för förbrukning, utlösare för begäran och påminnelse om att inkludera rubriken

    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:

    1. I utlösaren Begäran väljer du Använd exempelnyttolast för att generera schema.

      Skärmbild som visar arbetsflödet Förbrukning, Utlösare för begäran och

    2. Ange exempelnyttolasten och välj Klar.

      Skärmbild som visar arbetsflöde för förbrukning, utlösare för begäran och exempelnyttolast som angetts för att generera schema.

      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"
            }
         }
      }
      
  4. Följ dessa steg för att kontrollera att det inkommande anropet har en begärandetext som matchar ditt angivna schema:

    1. 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 egenskapen addtionalProperties och ange värdet till false.

      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
      }
      
    2. I namnlisten för begärandeutlösaren väljer du knappen ellipser (...).

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

  5. 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:

    Skärmbild som visar arbetsflöde för förbrukning, utlösare för begäran och tillägg av parametern

    Egenskapen Metod visas i utlösaren så att du kan välja en metod i listan.

    Skärmbild som visar arbetsflödet Förbrukning, Utlösare för begäran och listan

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

  7. Om du vill kopiera den genererade URL:en väljer du kopieringsikonen bredvid URL:en.

    Skärmbild som visar knappen Förbrukningsarbetsflöde, Utlösare för begäran och URL-kopiering markerad.

    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örutom Content-Disposition, Content-Encodingoch Content-Type när du använder POST- och PUT-åtgärder, men ingår inte för GET-åtgärder
    • Cookie
    • 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.

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

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

    Skärmbild som visar information om Azure Portal, arbetsflöde för förbrukning och svar.

    Om du vill visa rubrikerna i JSON-format väljer du Växla till textvy.

    Skärmbild som visar Azure Portal, arbetsflöde för förbrukning och åtgärdsrubriker för svar i vyn Växla till text.

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

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

Nästa steg