Last chance! 50% off DataCamp Premium
Sale ends in
Azure Functions är en del av Microsofts serverlösa beräkningstjänst. Det låter dig helt enkelt köra små kodbitar som svar på händelser utan att du själv behöver hantera servrarna.
Till exempel kan en funktion köras när en HTTP-begäran kommer in, när en fil laddas upp till lagring eller när en schemalagd tid uppnås.
”Serverlöst” betyder inte nödvändigtvis att det inte finns några servrar. Det betyder att Azure sköter infrastrukturen åt dig. Azure hanterar etablering, skalning och underhåll bakom kulisserna.
I den här guiden går jag igenom byggstenarna, det vill säga triggers, bindningar, värdalternativ och ett praktiskt exempel för att få dig igång.
En Azure Function är helt enkelt en liten kodsnutt som körs när den triggas av en händelse du väljer. Du skriver logiken, och Azure sköter resten åt dig.
Det finns tre idéer som definierar den här modellen.
Helst gör en enskild funktion en sak, som att ändra storlek på en bild eller bearbeta ett meddelande. En Function App är behållaren som rymmer en eller flera funktioner. Den hanterar delade inställningar, som konfiguration och distribution, för alla funktioner i den.
En funktions livscykel kan ses följa ett enkelt mönster enligt följande:
Det här flödet är i stort sett detsamma oavsett språk eller värdalternativ. Bara triggern, koden och bindningarna ändras.
Varje funktion har exakt en trigger. Triggern definierar exakt hur funktionen startar. Här är de vanligaste typerna som du bör känna till:
Jag tycker att triggers och bindningar ofta blandas ihop, men även om de ser lika ut gör de helt olika jobb. En trigger startar en funktion, medan en bindning kopplar funktionen till data genom att läsa in den eller skicka ut den.
Här ger du din funktion data utan att skriva anpassad integrationskod. Till exempel kan en funktion läsa en post från en databas automatiskt bara genom att deklarera bindningen.
Detta låter dig skicka din funktions resultat någon annanstans. Du kan till exempel använda utdatabindningar för att skriva ett bearbetat meddelande till en kö.
Här är ett exempel som hjälper till: En Blob Storage-trigger startar en funktion när en bild laddas upp. En utdatabindning sparar sedan den ändrade bilden i en annan lagringsbehållare. Bindningarna hanterar lagringsanslutningarna, och ingen manuell lagringsklientkod behövs.
Här är ett enkelt exempel på en mycket enkel HTTP-triggad funktion som returnerar en hälsning. Flödet är:
Jag gjorde det här exemplet medvetet litet för att visa mönstret och låta din kreativitet göra resten.
Azure Functions stöder många språk, såsom:
Stöd och utvecklingsmodeller kan variera beroende på språk och version. Därför rekommenderar jag att du kontrollerar den aktuella Azure-dokumentationen innan du startar ett nytt projekt eftersom dessa detaljer ändras ofta.
Alla Azure Functions körs inte på samma sätt. Azure erbjuder flera värdplaner, var och en med olika kompromisser. Rätt val beror på ditt fall. De viktigaste avvägningarna är:
Två ytterligare koncept är viktiga när din funktion körs i produktion. Dessa är:
Här övervakar Azure belastningen på din funktion och när efterfrågan ökar lägger den till fler beräkningsinstanser, och när efterfrågan sjunker tar den bort dem. Du behöver inte hantera detta manuellt.
Om en funktion inte har körts på sistone kan den behöva en stund för att starta innan den kan hantera en ny begäran. Denna fördröjning kallas en kall start. Vissa värdplaner minskar eller undviker detta genom att hålla instansen varm, som nämnts.
Den händelsedrivna modellen passar många vardagliga problem som du kan stöta på. Särskilt:
Detta för att hantera inkommande HTTP-begäranden utan att behöva köra en fullständig webbserver dygnet runt.
Detta hjälper till att trigga en funktion när en fil landar i lagring, och sedan ändra storlek, konvertera eller bara skanna den.
Detta hjälper till att köra städuppgifter, rapporter eller påminnelser på en timer utan behov av en dedikerad alltid-på-server.
Detta hjälper till att bearbeta meddelanden eller händelser när de anländer, ett steg i taget.
Detta hjälper till att hantera stora volymer av sensor- eller enhetsdata när de strömmas in.
Detta avlastar långsamt eller sporadiskt arbete, som att skicka e-post, så att det inte blockerar din huvudapplikation.
När en funktion är live behöver du insyn i hur den presterar.
Du kan till exempel se loggarna som sparar vad som hände under varje körning, vilket är mycket praktiskt för felsökning. Du kan också kontrollera Application Insights i Azure-verktygen, som spårar prestanda, begäranden och fel på en central plats.
Du bör också spåra körningsfel så att du vet när och varför en funktion inte slutfördes. Övervakning av prestanda hjälper dig dessutom att upptäcka långsamma funktioner innan de ens blir ett problem, och återförsöksbeteende kan förstås konfigureras så att misslyckade körningar försöker igen automatiskt.
Azure Functions ger dig ett sätt att köra kod som svar på händelser, utan att behöva hantera servrarna under. Triggern avgör när en funktion startar. Bindningarna, å andra sidan, gör det enkelt att koppla den funktionen till andra tjänster utan extra integrationskod.
När du går från en enkel testfunktion till något som körs i produktion blir val av värd och skalning mycket viktigare. Rätt plan påverkar kostnad, men också hastighet och tillförlitlighet.
En serverlös tjänst som kör små kodbitar som svar på händelser, utan att du hanterar servrar.
Händelser som HTTP-begäranden, timers, filuppladdningar eller kömeddelanden.
En trigger startar funktionen. En bindning kopplar den till andra tjänster för in- eller utdata.
En kort fördröjning när en funktion startar efter att ha varit inaktiv.
C#, JavaScript/TypeScript, Python, Java och PowerShell.
Lär dig Azure med DataCamp
Kurs
Kurs
Kurs