Jämför värdalternativ för Azure Functions

Slutförd

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
  1. 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.
  2. Standardtimeouten för version 1.x av Functions-körningen är obegränsad.
  3. Garanterat i upp till 60 minuter. Os- och körningskorrigeringar, sårbarhetskorrigeringar och skalning i beteenden kan fortfarande avbryta funktionskörningar.
  4. 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.
  5. När det minsta antalet repliker är inställt på noll beror standardtimeouten på de specifika utlösare som används i appen.