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
Ett Azure-konto och prenumeration. Om du inte har någon prenumeration skapar du ett kostnadsfritt konto.
Ett Service Bus-namnområde. Om du inte har något namnområde skapar du ditt namnområde först. Mer information finns i Vad är Azure Service Bus?
En funktionsapp, som är en container för dina funktioner. Om du inte har någon funktionsapp skapar du först funktionsappen och ser till att du väljer .NET som runtime stack-egenskap .
Grundläggande kunskaper om hur du skapar arbetsflöden för logikappar. Mer information finns i Skapa ett exempel på arbetsflöde för förbrukningslogikapp i Azure Logic Apps med flera klientorganisationer.
Skapa ett logikapparbetsflöde
I Azure Portal skapar du en tom logikapp för förbrukning genom att välja mallen Tom logikapp.
När designern har öppnats går du till sökrutan designer och väljer Inbyggd. I sökrutan anger du begäran.
I listan med utlösare väljer du utlösaren med namnet När en HTTP-begäran tas emot.
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.
Ange ett schema genom att ange schemat 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.
I utlösaren Begäran väljer du Använd exempelnyttolast för att generera schemat.
Under Ange eller klistra in en JSON-exempelnyttolast anger du exempelnyttolasten och väljer sedan Klar.
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" } } } } }
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.
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 .
Skapa en funktion
Skapa sedan funktionen som lyssnar på kön och anropar slutpunkten på utlösaren Begäran när ett meddelande kommer.
Öppna funktionsappen i Azure Portal.
På funktionsappens navigeringsmeny väljer du Funktioner. I fönstret Funktioner väljer du Skapa.
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. 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.
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:
Utlös funktionen med hjälp av meddelandet från kömeddelandet.
På grund av möjliga funktioner som körs samtidigt, höga volymer eller tunga belastningar undviker du att instansiera HTTPClient-klassen med -instruktionen
using
och direkt skapa HTTPClient-instanser per begäran. Mer information finns i Använda HttpClientFactory för att implementera elastiska HTTP-begäranden.Om möjligt kan du återanvända instansen av HTTP-klienter. Mer information finns i Hantera anslutningar i Azure Functions.
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ållstypenapplication/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:
Öppna Service Bus-namnområdet i Azure Portal.
På navigeringsmenyn för Service Bus-namnområde väljer du Köer.
Välj den Service Bus-kö som du länkade till funktionen tidigare med hjälp av en Service Bus-anslutning.
På navigeringsmenyn i kön väljer du Service Bus Explorer och sedan Skicka meddelanden i verktygsfältet.
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.