Azure Functions värdalternativ

När du skapar en funktionsapp i Azure måste du välja en värdplan för din app. Det finns tre grundläggande värdplaner för Azure Functions: förbrukningsplan, Premium-planoch dedikerad plan (App Service). Alla värdplaner är allmänt tillgängliga (GA) på både Linux och Windows virtuella datorer.

Den värdplan 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.

Den här artikeln innehåller en detaljerad jämförelse mellan de olika värdplanerna, tillsammans med Kubernetes-baserade värdtjänster.

Anteckning

Om du väljer att vara värd för dina funktioner i ett Kubernetes-kluster kan du använda Azure Arc kubernetes-kluster. Värdtjänster i Azure Arc Kubernetes-kluster är för närvarande i förhandsversion. Mer information finns i App Service, Functions och Logic Apps på Azure Arc.

Översikt över planer

Följande är en sammanfattning av fördelarna med de tre huvudsakliga värdplanerna för Functions:

Planera Fördelar
Förbrukningsplan Skala automatiskt och betala bara för beräkningsresurser när dina funktioner körs.

I förbrukningsplanen läggs instanser av Functions-värden till och tas bort dynamiskt baserat på antalet inkommande händelser.

✔ standardvärdplan.
✔ betala bara när dina funktioner körs.
✔ skalas automatiskt, även under perioder med hög belastning.
Premiumplan Skalas automatiskt baserat på efterfrågan med hjälp av förhettade arbetare som kör program utan fördröjning efter inaktivitet, körs på mer kraftfulla instanser och ansluter till virtuella nätverk.

Överväg Azure Functions Premium plan i följande situationer:

✔ Dina funktionsappar körs kontinuerligt eller nästan kontinuerligt.
✔ 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örbrukningsplanen.
✔ Koden måste köras längre än den maximala körningstiden som tillåts i förbrukningsplanen.
✔ Du behöver funktioner som inte är tillgängliga i förbrukningsplanen, till exempel virtuell nätverksanslutning.
✔ Du vill tillhandahålla en anpassad Linux-avbildning där du kan köra dina funktioner.
Dedikerad plan Kör dina funktioner inom en App Service plan till App Service plan priser.

Bäst för långvariga scenarier där Durable Functions inte kan användas. Tänk på App Service plan i följande situationer:

✔ Du har befintliga underutnyttjade virtuella datorer som redan kör andra App Service instanser.
✔ förebyggande skalning och kostnader krävs.

Jämförelsetabellerna i den här artikeln innehåller också följande värdalternativ, som ger den högsta mängden kontroll och isolering som du kan använda för att köra dina funktionsappar.

Värdalternativ Information
ASE App Service-miljön (ASE) är en App Service-funktion som ger en helt isolerad och dedikerad miljö för säker körning av App Service-appar i hög skala.

ASE:er är lämpliga för programarbetsbelastningar som kräver:

✔ Mycket hög skala.
✔ fullständig beräkningsisolering och säker nätverksåtkomst.
✔ hög minnesanvändning.
Kubernetes
(Direkt eller
Azure Arc)
Kubernetes tillhandahåller en helt isolerad och dedikerad miljö som körs ovanpå Kubernetes-plattformen.

Kubernetes är lämpligt för programarbetsbelastningar som kräver:
✔ Anpassade maskinvarukrav.
✔ Isolering och säker nätverksåtkomst.
✔ möjlighet att köra i hybridmiljöer eller miljöer med flera moln.
✔ körs tillsammans med befintliga Kubernetes-program och -tjänster.

De återstående tabellerna i den här artikeln jämför planerna för olika funktioner och beteenden. En kostnadsjämförelse mellan dynamiska värdplaner (förbrukning och Premium) finns Azure Functions sidan med priser. Priser för de olika alternativen för dedikerade abonnemang finns på App Service prissättningssidan.

Operativsystem/körning

I följande tabell visas stöd för operativsystem och språkkörning för värdplaner.

Linux1
Endast kod
Windows2
Endast kod
Linux1,3
Docker-container
Förbrukningsplan .NET Core
Node.js
Java
Python
.NET Core
Node.js
Java
PowerShell Core
Inget stöd
Premiumplan .NET Core
Node.js
Java
Python
.NET Core
Node.js
Java
PowerShell Core
.NET Core
Node.js
Java
PowerShell Core
Python
Dedikerad plan .NET Core
Node.js
Java
Python
.NET Core
Node.js
Java
PowerShell Core
.NET Core
Node.js
Java
PowerShell Core
Python
ASE .NET Core
Node.js
Java
Python
.NET Core
Node.js
Java
PowerShell Core
.NET Core
Node.js
Java
PowerShell Core
Python
Kubernetes (direkt) saknas saknas .NET Core
Node.js
Java
PowerShell Core
Python
Azure Arc (förhandsversion) .NET Core
Node.js
Java
Python
saknas .NET Core
Node.js
Java
PowerShell Core
Python

1 Linux är det enda operativsystem som stöds för Python-körningsstacken.
2 Windows är det enda operativsystem som stöds för PowerShell-körningsstacken.
3 Linux är det enda operativsystem som stöds för Docker-containrar.

Timeout-varaktighet för funktionsapp

Timeout-varaktigheten för en funktionsapp definieras av functionTimeout egenskapen i projektfilen host.json. I följande tabell visas standardvärdena och de högsta värdena i minuter för både planer och de olika körningsversionerna:

Planera Körningsversion Standardvärde Maximal
Förbrukning 1.x 5 10
Förbrukning 2.x 5 10
Förbrukning 3.x 5 10
Premium 1.x Obegränsat Obegränsat
Premium 2.x 30 Obegränsat
Premium 3.x 30 Obegränsat
App Service 1.x Obegränsat Obegränsat
App Service 2.x 30 Obegränsat
App Service 3.x 30 Obegränsat

Anteckning

Oavsett funktionsappens timeout-inställning är 230 sekunder den maximala tid som en HTTP-utlöst funktion kan ta att svara på en begäran. Detta beror på standardvärdet för tidsgränsen för inaktivitet Azure Load Balancer. För längre bearbetningstider bör du överväga att använda Durable Functions asynkront mönster eller skjuta upp det faktiska arbetet och returnera ett omedelbart svar.

Skala

I följande tabell jämförs skalningsbeteendena för de olika värdplanerna.

Planera Skala ut Maximalt antal instanser
Förbrukningsplan Händelsedriven. Skala ut automatiskt, även under perioder med hög belastning. Azure Functions skalar cpu- och minnesresurser genom att lägga till ytterligare instanser av Functions-värden, baserat på antalet inkommande utlösarhändelser. 200
Premiumplan Händelsedriven. Skala ut automatiskt, även under perioder med hög belastning. Azure Functions infrastruktur skalar CPU- och minnesresurser genom att lägga till ytterligare instanser av Functions-värden, baserat på antalet händelser som dess funktioner utlöses på. 100
Dedikerad plan1 Manuell/autoskalning 10-20
ASE1 Manuell/autoskalning 100
Kubernetes Händelsedriven autoskalning för Kubernetes-kluster med KEDA. Varierar   beroende på   kluster  

1 Specifika begränsningar för de olika App Service plan finns i App Service plan gränser.

Kallstartsbeteende

Planera Information
 Förbrukningsplan Appar kan skalas till noll när de är inaktiva, vilket innebär att vissa begäranden kan ha ytterligare svarstid vid start. Förbrukningsplanen har vissa optimeringar för att minska kallstarttiden, inklusive att hämta från förhettade platshållarfunktioner som redan har funktionsvärden och språkprocesserna igång.
Premiumplan Kontinuerligt varma instanser för att undvika kallstart.
Dedikerad plan När du kör i en dedikerad plan kan Functions-värden köras kontinuerligt, vilket innebär att kallstart egentligen inte är ett problem.
ASE När du kör i en dedikerad plan kan Functions-värden köras kontinuerligt, vilket innebär att kallstart egentligen inte är ett problem.
Kubernetes Beroende på KEDA-konfiguration kan appar konfigureras för att undvika kallstart. Om den är konfigurerad för att skala till noll, får du en kallstart för nya händelser.

Tjänstbegränsningar

Resurs Förbrukningsplan Premiumplan Dedikerad plan ASE Kubernetes
Standard varaktighet för timeout (min) 5 30 301 30 30
Längsta timeout-varaktighet (min) 10 obegränsat7 obegränsat2 unbounded unbounded
Max. utgående anslutningar (per instans) 600 aktiv (1200 totalt) unbounded unbounded unbounded unbounded
Maximal begär ande storlek (MB)3 100 100 100 100 Är beroende av kluster
Max. frågesträngs längd3 4096 4096 4096 4096 Är beroende av kluster
Max. URL-längd för begäran3 8192 8192 8192 8192 Är beroende av kluster
ACU per instans 100 210-840 100-840 210-2508 AKS-priser
Maximalt minne (GB per instans) 1.5 3.5-14 1,75-14 3,5 – 14 Alla noder stöds
Maximalt antal instanser 200 1009 varierar beroende på SKU10 10010 Är beroende av kluster
Function-appar per plan 100 100 obegränsat4 unbounded unbounded
App Service-planer 100 per region 100 per resurs grupp 100 per resurs grupp - -
Lagring5 5 TB 250 GB 50-1000 GB 1 TB saknas
Anpassade domäner per app 5006 500 500 500 saknas
Stöd för anpassad domän- SSL en obunden SNI SSL anslutning ingår obegränsade SNI SSL och 1 IP SSL anslutningar ingår obegränsade SNI SSL och 1 IP SSL anslutningar ingår obegränsade SNI SSL och 1 IP SSL anslutningar ingår saknas

1 som standard är tids gränsen för funktioner 1. x-körningsmiljön i en app service plan obegränsad.
2 kräver att App Service plan anges till Always on. Betala enligt standardpriser.
3 de här gränserna anges på värden.
4 det faktiska antalet funktions program som du kan vara värd för beror på aktivitetens appar, storleken på dator instanserna och motsvarande resursutnyttjande.
5 lagrings gränsen är den totala innehålls storleken i tillfällig lagring över alla appar i samma app service plan. Förbruknings planen använder Azure Files för tillfällig lagring.
6 när din Function-app finns i en förbruknings planstöds endast alternativet CNAME. För Function-appar i en Premium-plan eller en App Service plankan du mappa en anpassad domän med antingen en CNAME-eller en a-post.
7 garanterat i upp till 60 minuter.
8 arbetare är roller som är värdar för kund program. Arbetare är tillgängliga i tre fasta storlekar: en vCPU/3,5 GB RAM; Två vCPU/7 GB RAM-minne; Fyra vCPU/14 GB RAM-minne.
9 när du kör på Linux i en Premium-plan är du för närvarande begränsad till 20 instanser.
10 se App Service gränser för mer information.

Nätverksfunktioner

Funktion Förbrukningsplan Premiumplan Dedikerad plan ASE Kubernetes
Inkommande IP-begränsningar och åtkomst till privata platser ✅Ja ✅Ja ✅Ja ✅Ja ✅Ja
Integrering av virtuella nätverk ❌Nej ✅Ja (regional) ✅Ja (regional och gateway) ✅Ja ✅Ja
Virtuella nätverks utlösare (icke-HTTP) ❌Nej ✅Ja ✅Ja ✅Ja ✅Ja
Hybrid anslutningar (endast Windows) ❌Nej ✅Ja ✅Ja ✅Ja ✅Ja
Utgående IP-begränsningar ❌Nej ✅Ja ✅Ja ✅Ja ✅Ja

Fakturering

Planera Information
Förbrukningsplan Betala endast för den tid som dina funktioner körs. Fakturering baseras på antalet körningar, körningstid och använt minne.
Premiumplan Premium plan baseras på antalet kärnsekunder och minne som används för nödvändiga och förvarade instanser. Minst en instans per plan måste alltid hållas varm. Den här planen ger den mest förutsägbara prissättningen.
Dedikerad plan Du betalar samma för funktionsappar i en App Service plan som för andra App Service, till exempel webbappar.
App Service-miljön (ASE) Det finns ett fast månatligt pris för en ASE som betalar för infrastrukturen och som inte ändras med ase-storleken. Det finns också en kostnad per App Service plan vCPU. Alla appar som har en ASE som värd finns i SKU med isolerad prissättning.
Kubernetes Du betalar bara kostnaderna för ditt Kubernetes-kluster. ingen ytterligare fakturering för Functions. Funktionsappen körs som en programarbetsbelastning ovanpå klustret, precis som en vanlig app.

Nästa steg