Azure Functions hostingopties

Wanneer u een functie-app maakt in Azure, moet u een hostingplan voor uw app kiezen. Er zijn drie eenvoudige hostingplannen beschikbaar voor Azure Functions:Verbruiksplan, Premium-abonnementen Dedicated-abonnement (App Service). Alle hostingplannen zijn algemeen beschikbaar (GA) op zowel Linux als Windows virtuele machines.

Het hostingplan dat u kiest, bepaalt het volgende gedrag:

  • Hoe uw functie-app wordt geschaald.
  • De resources die beschikbaar zijn voor elk exemplaar van de functie-app.
  • Ondersteuning voor geavanceerde functionaliteit, zoals Azure Virtual Network connectiviteit.

Dit artikel bevat een gedetailleerde vergelijking tussen de verschillende hostingplannen, samen met hosting op basis van Kubernetes.

Notitie

Als u ervoor kiest om uw functies te hosten in een Kubernetes-cluster, kunt u overwegen Azure Arc Kubernetes-cluster te gebruiken. Hosting op een Azure Arc Kubernetes-cluster met ingeschakelde functie is momenteel in preview. Zie App Service, Functions en Logic Apps op Azure Arc voor meer Azure Arc.

Overzicht van plannen

Hier volgt een overzicht van de voordelen van de drie belangrijkste hostingplannen voor Functions:

Plannen Voordelen
Verbruiksabonnement Automatisch schalen en alleen betalen voor rekenbronnen wanneer uw functies worden uitgevoerd.

In het verbruiksplan worden exemplaren van de Functions-host dynamisch toegevoegd en verwijderd op basis van het aantal binnenkomende gebeurtenissen.

✔ standaardhostingplan.
✔ alleen betalen wanneer uw functies worden uitgevoerd.
✔ wordt automatisch geschaald, zelfs tijdens perioden met hoge belasting.
Premium-abonnement Wordt automatisch geschaald op basis van de vraag met behulp van vooraf opgewarmde werksters die toepassingen zonder vertraging uitvoeren na inactief te zijn, worden uitgevoerd op krachtigere instanties en verbinding maken met virtuele netwerken.

Houd rekening met Azure Functions Premium plan in de volgende situaties:

✔ Uw functie-apps worden continu of bijna continu uitgevoerd.
✔ U hebt een groot aantal kleine uitvoeringen en een hoge uitvoeringsrekening, maar lage GB seconden in het verbruiksplan.
✔ u meer CPU- of geheugenopties nodig hebt dan is opgegeven in het verbruiksplan.
✔ Uw code moet langer worden uitgevoerd dan de maximale uitvoeringstijd die is toegestaan voor het verbruiksplan.
✔ u functies nodig die niet beschikbaar zijn in het verbruiksplan, zoals virtuele netwerkconnectiviteit.
✔ u een aangepaste Linux-afbeelding wilt leveren waarop u uw functies kunt uitvoeren.
Toegewezen abonnement Voer uw functies uit binnen een App Service-abonnement met App Service abonnementstarieven.

Dit is het beste voor langlopende scenario'Durable Functions niet kunnen worden gebruikt. Overweeg een App Service plan in de volgende situaties:

✔ U bestaande, onderbelegde VM's hebt die al andere App Service uitvoeren.
✔ Predictive scaling en kosten zijn vereist.

De vergelijkingstabellen in dit artikel bevatten ook de volgende hostingopties, die de meeste controle en isolatie bieden voor het uitvoeren van uw functie-apps.

Hostingoptie Details
ASE App Service Environment (ASE) is een App Service-functie die een volledig geïsoleerde en toegewezen omgeving biedt voor het veilig uitvoeren van App Service apps op grote schaal.

AS-toepassingen zijn geschikt voor toepassingsworkloads waarvoor het volgende is vereist:

✔ zeer grootschalig.
✔ volledige rekenisolatie en beveiligde netwerktoegang.
✔ hoog geheugengebruik.
Kubernetes
(Direct of
Azure Arc)
Kubernetes biedt een volledig geïsoleerde en toegewezen omgeving die wordt uitgevoerd op het Kubernetes-platform.

Kubernetes is geschikt voor toepassingsworkloads waarvoor het volgende is vereist:
✔ aangepaste hardwarevereisten.
✔ isolatie en beveiligde netwerktoegang.
✔ mogelijkheid om uit te voeren in een hybride omgeving of een omgeving met meerdere cloudomgevingen.
✔ Naast bestaande Kubernetes-toepassingen en -services uitvoeren.

In de resterende tabellen in dit artikel worden de plannen vergeleken met verschillende functies en gedragingen. Voor een kostenvergelijking tussen dynamische hostingplannen (verbruik en Premium) gaat u naar Azure Functions pagina met prijzen. Zie de pagina met prijzen voor App Service meer informatie over de verschillende dedicated-abonnementsopties.

Besturingssysteem/runtime

In de volgende tabel ziet u besturingssysteem- en taalondersteuning voor de hostingplannen.

Linux1
Alleen-code
Windows2
Alleen-code
Linux1,3
Docker-container
Verbruiksabonnement .NET Core 3.1
.NET 5.0
Javascript
Java
Python
TypeScript
.NET Core 3.1
.NET 5.0
Javascript
Java
PowerShell Core
TypeScript
Geen ondersteuning
Premium-abonnement .NET Core 3.1
.NET 5.0
Javascript
Java
Python
TypeScript
.NET Core
.NET 5.0
Javascript
Java
PowerShell Core
TypeScript
.NET Core
Node.js
Java
PowerShell Core
Python
TypeScript
Toegewezen abonnement .NET Core 3.1
.NET 5.0
Javascript
Java
Python
TypeScript
.NET Core 3.1
.NET 5.0
Javascript
Java
PowerShell Core
TypeScript
.NET Core 3.1
.NET 5.0
Javascript
Java
PowerShell Core
Python
TypeScript
ASE .NET Core 3.1
.NET 5.0
Javascript
Java
Python
TypeScript
.NET Core 3.1
.NET 5.0
Javascript
Java
PowerShell Core
TypeScript
.NET Core 3.1
.NET 5.0
Javascript
Java
PowerShell Core
Python
TypeScript
Kubernetes (direct) n.v.t. n.v.t. .NET Core 3.1
.NET 5.0
Javascript
Java
PowerShell Core
Python
TypeScript
Azure Arc (preview) .NET Core 3.1
.NET 5.0
Javascript
Java
Python
TypeScript
n.v.t. .NET Core 3.1
.NET 5.0
Javascript
Java
PowerShell Core
Python
TypeScript

1 Linux is het enige ondersteunde besturingssysteem voor de Python-runtimestack.
2 Windows is het enige ondersteunde besturingssysteem voor de PowerShell-runtimestack.
3 Linux is het enige ondersteunde besturingssysteem voor Docker-containers.

Time-outduur voor Function-app

De time-outduur van een Function-app wordt gedefinieerd door de eigenschap functionTimeout in het projectbestand host.json. In de volgende tabel ziet u de standaard- en maximumwaarden in minuten voor beide abonnementen en de verschillende runtimeversies:

Plannen Runtime-versie Standaard Maximum
Verbruik 1.x 5 10
Verbruik 2.x 5 10
Verbruik 3.x 5 10
Premium 1.x Onbeperkt Onbeperkt
Premium 2.x 30 Onbeperkt
Premium 3.x 30 Onbeperkt
App Service 1.x Onbeperkt Onbeperkt
App Service 2.x 30 Onbeperkt
App Service 3.x 30 Onbeperkt

Notitie

Ongeacht de time-outinstelling van de Function-app is 230 seconden de maximale tijdsduur die een door HTTP geactiveerde functie heeft om te reageren op een aanvraag. Dit komt door de standaard time-out voor inactiviteit van Azure Load Balancer. Overweeg voor langere verwerkingstijden het asynchrone Durable Functions-patroon te gebruiken of stel het werk uit en stuur onmiddellijk een antwoord terug.

Schalen

In de volgende tabel wordt het schaalgedrag van de verschillende hostingplannen vergeleken.

Plannen Uitschalen Maximum aantal exemplaren
Verbruiksabonnement Gebeurtenisgestuurd. Automatisch uitschalen, zelfs tijdens perioden met hoge belasting. Azure Functions infrastructuur schaalt CPU- en geheugenbronnen door extra exemplaren van de Functions-host toe te voegen op basis van het aantal binnenkomende triggergebeurtenissen. 200
Premium-abonnement Gebeurtenisgestuurd. Automatisch uitschalen, zelfs tijdens perioden met hoge belasting. Azure Functions-infrastructuur worden CPU- en geheugenbronnen geschaald door extra exemplaren van de Functions-host toe te voegen op basis van het aantal gebeurtenissen dat door de functies ervan wordt geactiveerd. 100
Toegewezen abonnement1 Handmatig/automatisch schalen 10-20
ASE1 Handmatig/automatisch schalen 100
Kubernetes Automatisch schalen op basis van gebeurtenissen voor Kubernetes-clusters met BEHULP van KEDA. Varieert   per   cluster  

1 Voor specifieke limieten voor de verschillende App Service-abonnementsopties, zie App Service planlimieten.

Gedrag bij koude start

Plannen Details
 Verbruiksplan Apps kunnen worden geschaald naar nul wanneer ze niet actief zijn, wat betekent dat sommige aanvragen mogelijk extra latentie hebben bij het opstarten. Het verbruiksplan heeft een aantal optimalisaties om de koude starttijd te verlagen, waaronder het binnenhalen van vooraf opgewarmde functies van tijdelijke aanduidingen die al de functiehost en taalprocessen uitvoeren.
Premium-abonnement Continu warme exemplaren om koude start te voorkomen.
Toegewezen abonnement Bij het uitvoeren in een Dedicated-abonnement kan de Functions-host continu worden uitgevoerd, wat betekent dat koude start niet echt een probleem is.
ASE Bij het uitvoeren in een Dedicated-abonnement kan de Functions-host continu worden uitgevoerd, wat betekent dat koude start niet echt een probleem is.
Kubernetes Afhankelijk van de KEDA-configuratie kunnen apps worden geconfigureerd om een koude start te voorkomen. Als deze is geconfigureerd om te worden geschaald naar nul, is er een koude start voor nieuwe gebeurtenissen.

Servicelimieten

Resource Verbruiksabonnement Premium-abonnement Toegewezen abonnement ASE Kubernetes
Standaard time-outduur (min.) 5 30 301 30 30
Maximale time-outduur (min.) 10 niet-gebonden7 niet-gebonden2 niet-gebonden niet-gebonden
Maximumaantal uitgaande verbindingen (per exemplaar) 600 actief (1.200 totaal) niet-gebonden niet-gebonden niet-gebonden niet-gebonden
Maximale aanvraaggrootte (MB)3 100 100 100 100 Afhankelijk van cluster
Maximale tekenreekslengte voor query's3 4096 4096 4096 4096 Afhankelijk van cluster
Maximale lengte voor aanvraag-URL's3 8192 8192 8192 8192 Afhankelijk van cluster
ACU per exemplaar 100 210-840 100-840 210-2508 AKS-prijzen
Maximaal geheugen (GB per exemplaar) 1.5 3,5-14 1,75-14 3,5 - 14 Elk knooppunt wordt ondersteund
Maximum aantal exemplaren 200 1009 varieert per SKU10 10010 Afhankelijk van cluster
Functie-apps per abonnement 100 100 niet-gebonden4 niet-gebonden niet-gebonden
App Service-abonnementen 100 per regio 100 per resourcegroep 100 per resourcegroep - -
Opslag5 5 TB 250 GB 50-1000 GB 1 TB n.v.t.
Aangepaste domeinen per app 5006 500 500 500 n.v.t.
Aangepast domein voor SSL-ondersteuning niet-gebonden SNI SSL-verbinding inbegrepen niet-gebonden SNI SSL- en 1 IP SSL-verbindingen inbegrepen niet-gebonden SNI SSL- en 1 IP SSL-verbindingen inbegrepen niet-gebonden SNI SSL- en 1 IP SSL-verbindingen inbegrepen n.v.t.

1 De time-out voor de Functions 1.x-runtime in een App Service-abonnement is standaard niet-gebonden.
2 Het App Service-abonnement moet zijn ingesteld op Altijd aan. Tegen standaardtarieven.
3 Deze limieten worden ingesteld in de host.
4 Het werkelijke aantal functie-apps dat u kunt hosten, is afhankelijk van de activiteit van de apps, de grootte van het machine-exemplaar en het bijbehorende resourcegebruik.
5 De opslaglimiet is de totale inhoudsgrootte in tijdelijke opslag voor alle apps in hetzelfde App Service-abonnement. Verbruiksabonnement maakt gebruik van Azure Files voor tijdelijke opslag.
6 Wanneer uw functie-app in een verbruiksabonnement wordt gehost, wordt alleen de optie CNAME ondersteund. Voor functie-apps in een Premium-abonnement of een App Service-abonnement kunt u een aangepast domein toewijzen met een CNAME- of A-record.
7 Gegarandeerd voor maximaal 60 minuten.
8 Werkrollen zijn rollen die klanten-apps hosten. Werkrollen zijn beschikbaar in drie vaste grootten: Eén vCPU/3,5 GB RAM; Twee vCPU/7 GB RAM; Vier vCPU/14 GB RAM.
9 wanneer u in een Premium-abonnement op Linux wordt uitgevoerd, bent u momenteel beperkt tot 20 exemplaren.
10 Zie app service limieten voor meer informatie.

Netwerkfuncties

Functie Verbruiksabonnement Premium-abonnement Toegewezen abonnement ASE Kubernetes
Binnenkomende IP-beperkingen en toegang tot persoonlijke sites ✅Yes ✅Yes ✅Yes ✅Yes ✅Yes
Integratie van virtueel netwerk ❌No ✅Ja (regionaal) ✅Ja (regionaal en gateway) ✅Yes ✅Yes
Virtuele netwerk triggers (niet-HTTP) ❌No ✅Yes ✅Yes ✅Yes ✅Yes
Hybride verbindingen (alleen Windows) ❌No ✅Yes ✅Yes ✅Yes ✅Yes
Uitgaande IP-beperkingen ❌No ✅Yes ✅Yes ✅Yes ✅Ja

Billing

Plannen Details
Verbruiksabonnement Betaal alleen voor de tijd dat uw functies worden uitgevoerd. De facturering is dan ook gebaseerd op het aantal uitvoeringen, de uitvoeringstijd en het gebruikte geheugen.
Premium-abonnement Premium abonnement is gebaseerd op het aantal kernseconden en het geheugen dat wordt gebruikt in de benodigde en vooraf opgewarmde exemplaren. Ten minste één exemplaar per abonnement moet altijd warm worden gehouden. Dit abonnement biedt de meest voorspelbare prijzen.
Toegewezen abonnement U betaalt hetzelfde voor functie-apps in een App Service-abonnement als voor andere App Service resources, zoals web-apps.
App Service Environment (ASE) Er is een vast maandtarief voor een ASE die de infrastructuur betaalt en niet verandert met de grootte van de ASE. Er zijn ook kosten per App Service plan vCPU. Alle apps die worden gehost in een AS-omgeving, vallen onder de Geïsoleerde prijs-SKU.
Kubernetes U betaalt alleen de kosten van uw Kubernetes-cluster; geen extra facturering voor Functions. Uw functie-app wordt uitgevoerd als een toepassingsworkload boven op uw cluster, net als een gewone app.

Volgende stappen