Konfigurera långvariga uppgifter genom att anropa logikapparbetsflöden med Azure Functions

Gäller för: Azure Logic Apps (förbrukning)

När du behöver distribuera en långvarig lyssnare eller uppgift kan du skapa ett logikapparbetsflöde som använder utlösaren Förfrågning och Azure Functions för att anropa utlösaren och köra arbetsflödet.

Du kan till exempel skapa en funktion som lyssnar efter meddelanden som kommer i en Azure Service Bus kö. När den här händelsen inträffar anropar funktionen utlösaren Begäran, som fungerar som en push-utlösare för att automatiskt köra arbetsflödet.

Den här instruktionsguiden visar hur du skapar ett logikapparbetsflöde som börjar med utlösaren Förfrågning. Sedan skapar du en funktion som lyssnar på en Service Bus-kö. När ett meddelande kommer till kön anropar funktionen slutpunkten som skapades av utlösaren Begäran för att köra arbetsflödet.

Anteckning

Även om du kan implementera det här beteendet med hjälp av antingen ett arbetsflöde för förbruknings- eller standardlogikappen fortsätter det här exemplet med ett arbetsflöde för förbrukning.

Förutsättningar

Skapa ett logikapparbetsflöde

  1. I Azure Portal skapar du en tom logikapp för förbrukning genom att välja mallen Tom logikapp.

  2. När designern har öppnats går du till sökrutan designer och väljer Inbyggd. I sökrutan anger du begäran.

  3. I listan med utlösare väljer du utlösaren med namnet När en HTTP-begäran tas emot.

    Skärmbild av designern i portalen. Sökrutan innehåller http-begäran. Under

    Med utlösaren Begäran kan du ange ett JSON-schema som ska användas med kömeddelandet. JSON-scheman hjälper designern att förstå strukturen för indata och göra utdata enklare för dig att använda i arbetsflödet.

  4. Ange ett schema genom att ange schemat i rutan JSON-schema för begärandetext .

    Skärmbild av information om en HTTP-begärandeutlösare. En del JSON-kod visas i rutan JSON-schema för begärandetext.

    Om du inte har något schema, men du har en exempelnyttolast i JSON-format, kan du generera ett schema från nyttolasten.

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

    2. Under Ange eller klistra in en JSON-exempelnyttolast anger du exempelnyttolasten och väljer sedan Klar.

      Skärmbild av information om en HTTP-begärandeutlösare. Under

      Exempelnyttolasten som visas tidigare genererar följande schema, som visas i utlösaren:

      {
         "type": "object",
         "properties": {
            "address": {
               "type": "object",
               "properties": {
                  "number": {
                     "type": "integer"
                  },
                  "street": {
                     "type": "string"
                  },
                  "city": {
                     "type": "string"
                  },
                  "postalCode": {
                     "type": "integer"
                  },
                  "country": {
                     "type": "string"
                  }
               }
            }
         }
      }
      
  5. Under utlösaren lägger du till andra åtgärder som du vill använda för att bearbeta det mottagna meddelandet.

    Du kan till exempel lägga till en åtgärd som skickar e-post med Office 365 Outlook-anslutningsprogrammet.

  6. Spara arbetsflödet för logikappen.

    Det här steget genererar återanrops-URL:en för utlösaren Förfrågning i arbetsflödet. Senare använder du den här motringnings-URL:en i koden för Azure Service Bus Queue-utlösaren. Återanrops-URL:en visas i egenskapen HTTP POST URL .

    Skärmbild av information om en HTTP-begärandeutlösare. Bredvid HTTP POST-URL visas en URL.

Skapa en funktion

Skapa sedan funktionen som lyssnar på kön och anropar slutpunkten på utlösaren Begäran när ett meddelande kommer.

  1. Öppna funktionsappen i Azure Portal.

  2. På funktionsappens navigeringsmeny väljer du Funktioner. I fönstret Funktioner väljer du Skapa.

    Skärmbild av en funktionsapp med

  3. Under Välj en mall väljer du mallen med namnet Azure Service Bus Köutlösare. När avsnittet Mallinformation visas, som visar olika alternativ baserat på ditt mallval, anger du följande information:

    Egenskap Värde Beskrivning
    Ny funktion <function-name> Ange ett namn för funktionen.
    Service Bus-anslutning <Service-Bus-anslutning> Välj Ny för att konfigurera anslutningen för Service Bus-kön, som använder Service Bus SDK-lyssnaren OnMessageReceive() .
    Könamn <könamn> Ange namnet på kön.

    Skärmbild av fönstret Skapa funktion med

  4. När du är färdig väljer du Skapa.

    Azure Portal visar nu sidan Översikt för din nya Azure Service Bus Queue-utlösarfunktion.

  5. Skriv nu en grundläggande funktion för att anropa slutpunkten för logikappens arbetsflöde som du skapade tidigare. Innan du skriver din funktion bör du läsa följande överväganden:

    I följande exempel används Task.Run metoden i asynkront läge. Mer information finns i Asynkron programmering med async och await. Exemplet använder också meddelandeinnehållstypen application/json , men du kan ändra den här typen efter behov.

    using System;
    using System.Threading.Tasks;
    using System.Net.Http;
    using System.Text;
    
    // Set up the URI for the logic app workflow. You can also get this value on the logic app's 'Overview' pane, under the trigger history, or from an environment variable.
    private static string logicAppUri = @"https://prod-05.westus.logic.azure.com:443/workflows/<remaining-callback-URL>";
    
    // Reuse the instance of HTTP clients if possible. For more information, see https://learn.microsoft.com/azure/azure-functions/manage-connections.
    private static HttpClient httpClient = new HttpClient();
    
    public static async Task Run(string myQueueItem, TraceWriter log) 
    {
       log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
       var response = await httpClient.PostAsync(logicAppUri, new StringContent(myQueueItem, Encoding.UTF8, "application/json")); 
    }
    

Testa logikappens arbetsflöde

För testning lägger du till ett meddelande i Service Bus-kön med hjälp av följande steg eller något annat verktyg:

  1. Öppna Service Bus-namnområdet i Azure Portal.

  2. navigeringsmenyn för Service Bus-namnområde väljer du Köer.

    Skärmbild av ett Service Bus-namnområde.

  3. Välj den Service Bus-kö som du länkade till funktionen tidigare med hjälp av en Service Bus-anslutning.

  4. På navigeringsmenyn i kön väljer du Service Bus Explorer och sedan Skicka meddelanden i verktygsfältet.

    Skärmbild av en Service Bus-kösida i portalen med

  5. I fönstret Skicka meddelanden anger du meddelandet som ska skickas till Service Bus-kön.

    Det här meddelandet utlöser logikappens arbetsflöde.

Nästa steg