Jämför värdalternativ för Azure Functions
När du skapar en funktionsapp i Azure måste du välja en värdplan för din app. Azure tillhandahåller följande värdalternativ för din funktionskod:
Värdalternativ | Tjänst | Tillgänglighet | Stöd för containrar |
---|---|---|---|
Förbrukningsplan | Azure Functions | Allmänt tillgängliga (GA) | Ingen |
Flex-förbrukningsplan | Azure Functions | Förhandsversion | Ingen |
Premium-plan | Azure Functions | Allmän tillgänglighet | Linux |
Dedikerad plan | Azure Functions | Allmän tillgänglighet | Linux |
Container Apps | Azure Container Apps | Allmän tillgänglighet | Linux |
Azure App Service-infrastrukturen underlättar Azure Functions-värdtjänster på både virtuella Linux- och Windows-datorer. Det värdalternativ som du väljer avgör följande beteenden:
- Hur funktionsappen skalas.
- De resurser som är tillgängliga för varje funktionsappinstans.
- Stöd för avancerade funktioner, till exempel Azure Virtual Network-anslutning.
- Stöd för Linux-containrar.
Den plan du väljer påverkar också kostnaderna för att köra funktionskoden.
Översikt över planer
Här följer en sammanfattning av fördelarna med de olika värdalternativen:
Förbrukningsplan
Förbrukningsplanen är standardvärdplanen. Betala endast för beräkningsresurser när dina funktioner körs (betala per användning) med automatisk skalning. I en förbrukningsplan läggs instanser av Functions-värden till och tas bort dynamiskt baserat på antalet inkommande händelser.
Flex-förbrukningsplan
Få hög skalbarhet med beräkningsalternativ, virtuella nätverk och betala per användning-fakturering. I Flex Consumption-planen läggs instanser av Functions-värden till dynamiskt och tas bort baserat på den konfigurerade samtidigheten per instans och antalet inkommande händelser.
Du kan minska antalet kallstarter genom att ange antalet företablerade (alltid redo) instanser. Skalas automatiskt baserat på efterfrågan.
Premiumplan
Skalar automatiskt baserat på efterfrågan med hjälp av förvärmda arbetare, som kör program utan fördröjning efter inaktivitet, körs på kraftfullare instanser och ansluter till virtuella nätverk.
Överväg Azure Functions Premium-planen i följande situationer:
- Dina funktionsappar körs kontinuerligt eller nästan kontinuerligt.
- Du vill ha mer kontroll över dina instanser och vill distribuera flera funktionsappar på samma plan med händelsedriven skalning.
- Du har ett stort antal små körningar och en hög körningsfaktura, men låga GB-sekunder i förbrukningsplanen.
- Du behöver fler processor- eller minnesalternativ än vad som anges i förbrukningsplanerna.
- Koden måste köras längre än den maximala körningstiden som tillåts i förbrukningsplanen.
- Du behöver anslutning till virtuella nätverk.
- Du vill ange en anpassad Linux-avbildning där du kan köra dina funktioner.
Dedikerad plan
Kör dina funktioner i en App Service-plan till vanliga App Service-planpriser. Bäst för långvariga scenarier där Durable Functions inte kan användas.
Överväg en App Service-plan i följande situationer:
- Du måste ha en helt förutsägbar fakturering, eller så måste du skala instanser manuellt.
- Du vill köra flera webbappar och funktionsappar på samma plan
- Du behöver åtkomst till större val av beräkningsstorlek.
- Fullständig beräkningsisolering och säker nätverksåtkomst som tillhandahålls av en App Service-miljön (ASE).
- Hög minnesanvändning och hög skalning (ASE).
Container Apps
Skapa och distribuera containerbaserade funktionsappar i en fullständigt hanterad miljö som hanteras av Azure Container Apps.
Använd Azure Functions-programmeringsmodellen för att skapa händelsedrivna, serverlösa, molnbaserade funktionsappar. Kör dina funktioner tillsammans med andra mikrotjänster, API:er, webbplatser och arbetsflöden som värdbaserade program för containrar.
Överväg att vara värd för dina funktioner i Container Apps i följande situationer:
- Du vill paketera anpassade bibliotek med din funktionskod för att stödja verksamhetsspecifika appar.
- Du måste migrera kodkörning från lokala eller äldre appar till molnbaserade mikrotjänster som körs i containrar.
- Du vill undvika omkostnaderna och komplexiteten i att hantera Kubernetes-kluster och dedikerad beräkning.
- Du behöver den avancerade bearbetningskraft som tillhandahålls av dedikerade processorberäkningsresurser för dina funktioner.
Varaktighet för tidsgräns för funktionsapp
Egenskapen functionTimeout
i host.json-projektfilen anger tidsgränsen för funktioner i en funktionsapp. Den här egenskapen gäller specifikt för funktionskörningar. När utlösaren startar funktionskörningen måste funktionen returnera/svara inom tidsgränsen.
I följande tabell visas standardvärdena och maxvärdena (i minuter) för specifika planer:
Planera | Standardvärde | Maximalt1 |
---|---|---|
Förbrukningsplan | 5 | 10 |
Flex-förbrukningsplan | 30 | Obegränsad3 |
Premiumplan | 302 | Obegränsad3 |
Dedikerad plan | 302 | Obegränsad3 |
Container Apps | 305 | Obegränsad3 |
- Oavsett tidsgränsinställningen för funktionsappen är 230 sekunder den maximala tid som en HTTP-utlöst funktion kan ta för att svara på en begäran.
- Standardtimeouten för version 1.x av Functions-körningen är obegränsad.
- Garanterat i upp till 60 minuter. Os- och körningskorrigeringar, sårbarhetskorrigeringar och skalning i beteenden kan fortfarande avbryta funktionskörningar.
- I en Flex Consumption-plan tillämpar värden inte någon tidsgräns för körning. Det finns dock för närvarande inga garantier eftersom plattformen kan behöva avsluta dina instanser under inskalning, distributioner eller för att tillämpa uppdateringar.
- När det minsta antalet repliker är inställt på noll beror standardtimeouten på de specifika utlösare som används i appen.