Vad är Azure Functions?
Azure Functions är en molnbaserad beräkningstjänst. Funktioner tillhandahåller händelsedriven och skalbar serverlös beräkning för Azure. I vissa fall debiteras du bara för den tid som funktionskoden körs.
Du kan använda Azure Functions för att köra koden när du behöver den för att köra den. Din kod kan till exempel köras som ett resultat av en händelse eller ändring, till exempel när ett meddelande tas emot i en kö eller när ett lagrat objekt uppdateras. Du kan också använda CRON-regler för att definiera ett schemalagt intervall för din kod som ska köras.
Använda utlösare för att bestämma när kod ska köras
Med Azure Functions kan du definiera utlösare som startar körningen av koden. Utlösare kan också bearbeta indata för att skicka data till dina funktioner. Varje funktion kan bara ha en utlösare. Några av de utlösartyper som stöds av Azure-funktioner är:
- Lagring: Du kan till exempel lyssna från händelser från databaser som Azure Cosmos DB när en ny rad infogas.
- Händelser: Event Grid och Event Hubs skapar händelser som kan utlösa din kod.
- HTTP-kod: Webbbegäranden och webhooks kan utlösa HTTP-kod.
- Köer: Kömeddelanden kan också bearbetas.
- Timer: Kod kan anropas med ett visst tidsintervall.
Använd bindningar för att ansluta till datakällor. Bindningar är ett sätt att förenkla kodningen för indata och utdata. Du kan använda klient-SDK:er för att ansluta till tjänster från funktionskoden, men Functions tillhandahåller bindningar för att förenkla dessa anslutningar. Bindningar är i princip anslutningskod som du inte behöver skriva. Du kan integrera med många tjänster i Azure och lösa integreringsproblem och automatisera affärsprocesser.
Bindningar finns i två varianter, indata och utdata. En utdatabindning ger ett sätt att skriva data till datamålet, till exempel att placera ett meddelande i en kö eller en ny rad i en databas. Indatabindningar kan användas för att skicka data till din funktion från en annan datakälla än den som utlöste funktionen.
Funktioner
Det finns några funktioner som gör Azure Functions till ett övertygande val:
Flexibla värdplaner. Det finns tre olika värdplaner som passar dina affärsbehov.
- Förbrukningsplan. Det här är det fullständigt serverlösa värdalternativet för Functions. Funktioner skalas automatiskt och du betalar endast för beräkningsresurser när dina funktioner körs. Den här planen ger kostnadseffektiv beräkning för korta processarbetsbelastningar som tenderar att vara mer tillfälliga med mindre förutsägbara belastningar.
- Premium-plan. I den här planen hålls dina funktioner initierade, vilket innebär att det inte finns någon fördröjning när du har varit inaktiv. Det här är en bra plan att välja när funktionsappen ska köras under längre perioder, men du behöver fortfarande den dynamiska skalan. Med den här planen kan du också börja skala med fler resurser snabbare än med förbrukningsplanen. I förbrukningsplanen finns det också gränser för körningstiden, som den här planen kan ersätta. Även om du fortfarande får kostnadsfördelarna med dynamisk skala betalar du mer.
- Dedikerad plan. Du kör dina funktioner med en vanlig App Service-plan. Det är bäst för scenarier där dina funktioner måste köras kontinuerligt. En annan fördel är att du helt styr hur appen skalar och enklare kan förutsäga kostnader. Det här är också ett bra val när du har en befintlig men underutnyttad App Service-plan tillgänglig.
Dynamisk skalning. I de flesta planer skalas funktioner dynamiskt baserat på belastning. När efterfrågan på körning ökar allokeras fler resurser automatiskt till tjänsten och när begäranden faller släpps resurser och programinstanser automatiskt. I Förbrukningsplan betalar du inte alls för inaktiva funktioner.
Händelsebaserad arkitektur. Funktioner är avsedda att vara små och fokuserade och bearbeta inkommande data och göras eller generera en ny händelse i tur och ordning. Några vanliga användningsområden för Azure-funktioner är att skicka e-postmeddelanden, starta säkerhetskopiering, orderbearbetning, schemalägga uppgifter, till exempel rensa databaser, skicka meddelanden, meddelanden och IoT-databehandling.