Share via


Hostingopties voor Azure Functions

Wanneer u een functie-app in Azure maakt, moet u een hostingoptie voor uw app kiezen. Azure biedt u de volgende hostingopties voor uw functiecode:

Hostingoptie Service Beschikbaarheid Ondersteuning voor containers
Verbruiksabonnement Azure Functions Algemeen beschikbaar Geen
Flex Consumption-abonnement Azure Functions Preview uitvoeren Geen
Premium-abonnement Azure Functions GA Linux
Toegewezen abonnement Azure Functions GA Linux
Container Apps Azure Container Apps GA Linux

Azure Functions-hostingopties worden mogelijk gemaakt door Azure-app Service-infrastructuur op virtuele Linux- en Windows-machines. De hostingoptie die 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.
  • Ondersteuning voor Linux-containers.

Het plan dat u kiest, heeft ook invloed op de kosten voor het uitvoeren van uw functiecode. Zie Facturering voor meer informatie.

Dit artikel bevat een gedetailleerde vergelijking tussen de verschillende hostingopties. Zie de ondersteuning voor Linux-containers voor Linux-containers voor meer informatie over het uitvoeren en beheren van uw functiecode in Azure Functions.

Overzicht van plannen

Hier volgt een overzicht van de voordelen van de verschillende opties voor Het hosten van Azure Functions:

Optie Vergoedingen
Verbruiksabonnement Betaal alleen voor rekenresources wanneer uw functies worden uitgevoerd (betalen per gebruik) met automatische schaalaanpassing.

Bij een verbruiksabonnement worden exemplaren van de Functions-host dynamisch toegevoegd en verwijderd op basis van het aantal binnenkomende gebeurtenissen.

✔ Standaardhostingabonnement dat echte serverloze hosting biedt.
✔ Betaal alleen wanneer uw functies worden uitgevoerd.
✔ Schaalt automatisch, zelfs tijdens perioden van hoge belasting.
Flex Consumption-abonnement Krijg een hoge schaalbaarheid met rekenopties, virtuele netwerken en facturering per gebruik.

In het Flex Consumption-abonnement worden exemplaren van de Functions-host dynamisch toegevoegd en verwijderd op basis van de geconfigureerde gelijktijdigheid per instantie en het aantal binnenkomende gebeurtenissen.

✔ Verminder koude start door een aantal vooraf ingerichte (altijd gereed) exemplaren op te geven.
✔ Ondersteunt virtuele netwerken voor extra beveiliging.
✔ Betalen wanneer uw functies worden uitgevoerd.
✔ Schaalt automatisch, zelfs tijdens perioden van hoge belasting.
Premium-abonnement Schaalt automatisch op basis van vraag met behulp van vooraf opgewarmde werkrollen, die toepassingen zonder vertraging uitvoeren nadat ze inactief zijn, worden uitgevoerd op krachtigere exemplaren en verbinding maken met virtuele netwerken.

Houd rekening met het Azure Functions Premium-abonnement in de volgende situaties:

✔ Uw functie-apps worden continu of bijna continu uitgevoerd.
✔ U wilt meer controle over uw exemplaren en meerdere functie-apps implementeren in hetzelfde plan met gebeurtenisgestuurd schalen.
✔ U hebt een groot aantal kleine uitvoeringen en een hoge uitvoeringsfactuur, maar lage GB seconden in het verbruiksabonnement.
✔ U hebt meer CPU- of geheugenopties nodig dan wordt geleverd door verbruiksabonnementen.
✔ Uw code moet langer worden uitgevoerd dan de maximale uitvoeringstijd die is toegestaan voor het verbruiksabonnement.
✔ U hebt een virtuele netwerkverbinding nodig.
✔ U wilt een aangepaste Linux-installatiekopieën opgeven waarin u uw functies kunt uitvoeren.
Toegewezen abonnement Voer uw functies uit binnen een App Service-plan tegen normale tarieven voor Een App Service-plan.

Het meest geschikt voor langdurige scenario's waarbij Durable Functions niet kan worden gebruikt. Overweeg een App Service-plan in de volgende situaties:

✔ U hebt bestaande en onderbenutte virtuele machines waarop al andere App Service-exemplaren worden uitgevoerd.
✔ U moet volledig voorspelbare facturering hebben of u moet exemplaren handmatig schalen.
✔ U wilt meerdere web-apps en functie-apps uitvoeren op hetzelfde abonnement
✔ U hebt toegang nodig tot grotere rekengrootten.
✔ Volledige rekenisolatie en beveiligde netwerktoegang die wordt geleverd door een App Service Environment (ASE).
✔ Zeer hoog geheugengebruik en hoge schaal (ASE).
Container Apps In containers geplaatste functie-apps maken en implementeren in een volledig beheerde omgeving die wordt gehost door Azure Container Apps.

Gebruik het Azure Functions-programmeermodel om gebeurtenisgestuurde, serverloze, cloudeigen functie-apps te bouwen. Voer uw functies uit naast andere microservices, API's, websites en werkstromen als door containers gehoste programma's. Overweeg in de volgende situaties uw functies op Container Apps te hosten:

✔ U wilt aangepaste bibliotheken verpakken met uw functiecode ter ondersteuning van Line-Of-Business-apps.
✔ U moet code-uitvoering migreren van on-premises of verouderde apps naar cloudeigen microservices die in containers worden uitgevoerd.
✔ Wanneer u de overhead en complexiteit van het beheren van Kubernetes-clusters en toegewezen rekenkracht wilt voorkomen.
✔ Uw functies hebben geavanceerde verwerkingskracht nodig die wordt geleverd door toegewezen GPU-rekenresources.

De resterende tabellen in dit artikel vergelijken hostingopties op basis van verschillende functies en gedragingen.

Ondersteuning van het besturingssysteem

In deze tabel ziet u besturingssysteemondersteuning voor de hostingopties.

Hosting Linux1-implementatie Implementatie van Windows2
Verbruiksabonnement ✅ Alleen code
❌ Container (niet ondersteund)
✅ Alleen code
Flex Consumption-abonnement ✅ Alleen code
❌ Container (niet ondersteund)
❌ Niet ondersteund
Premium-abonnement ✅ Alleen code
✅ Container
✅ Alleen code
Toegewezen abonnement ✅ Alleen code
✅ Container
✅ Alleen code
Container Apps ✅ Alleen container ❌ Niet ondersteund

1 Linux is het enige ondersteunde besturingssysteem voor de Python-runtimestack.
2 Windows-implementaties zijn alleen code. Functions biedt momenteel geen ondersteuning voor Windows-containers.

Time-outduur voor Function-app

De time-outduur voor functies in een functie-app wordt gedefinieerd door de functionTimeout eigenschap in het host.json projectbestand. Deze eigenschap is specifiek van toepassing op functie-uitvoeringen. Nadat de trigger de uitvoering van de functie start, moet de functie binnen de time-outduur retourneren/reageren. Zie Prestaties en betrouwbaarheid van Azure Functions verbeteren voor meer informatie.

In de volgende tabel ziet u de standaard- en maximumwaarden (in minuten) voor specifieke plannen:

Plannen Standaardinstelling Maximum1
Verbruiksabonnement 5 10
Flex Consumption-abonnement 30 Onbeperkt3
Premium-abonnement 302 Onbeperkt3
Toegewezen abonnement 302 Onbeperkt3

1 Ongeacht de time-outinstelling van de functie-app, is 230 seconden de maximale hoeveelheid tijd die een door HTTP geactiveerde functie kan duren 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.
2 De standaardtime-out voor versie 1.x van de Functions-runtime is onbeperkt.
3 Gegarandeerd tot 60 minuten. Patches voor het besturingssysteem en runtime, patches voor beveiligingsproblemen en het inschalen van gedrag kunnen nog steeds functie-uitvoeringen annuleren, zodat u robuuste functies kunt schrijven. 4 In een Flex Consumption-abonnement dwingt de host geen uitvoeringstijdslimiet af. Er zijn momenteel echter geen garanties omdat het platform uw exemplaren mogelijk moet beëindigen tijdens het inschalen, implementaties of om updates toe te passen.

Taalondersteuning

Zie Ondersteunde talen in Azure Functions voor meer informatie over de huidige ondersteuning voor systeemeigen taalstacks in Functions.

Schaal wijzigen

De volgende tabel vergelijkt het schaalgedrag van de verschillende hostingabonnementen.
Maximumaantal exemplaren worden gegeven per functie-app (Verbruik) of per abonnement (Premium/Dedicated), tenzij anders aangegeven.

Plannen Uitschalen Maximaal aantal exemplaren
Verbruiksabonnement Gebeurtenisgestuurd. Schaalt automatisch uit, zelfs tijdens perioden met hoge belasting. Met de functie-infrastructuur worden CPU- en geheugenresources geschaald door meer exemplaren van de Functions-host toe te voegen op basis van het aantal binnenkomende trigger gebeurtenissen. Windows: 200
Linux: 1001
Flex Consumption-abonnement Schaalaanpassing per functie. Gebeurtenisgestuurde schaalbeslissingen worden per functie berekend, wat een meer deterministische manier biedt om de functies in uw app te schalen. Met uitzondering van HTTP, Blob Storage (Event Grid) en Durable Functions, worden alle andere typen functietriggers in uw app geschaald op onafhankelijke instanties. Alle HTTP-triggers in uw app worden samen geschaald als een groep op dezelfde exemplaren, net als alle Blob Storage-triggers (Event Grid). Alle Durable Functions-triggers delen ook exemplaren en schalen. Alleen beperkt door het totale geheugengebruik van alle exemplaren in een bepaalde regio. Zie Exemplaargeheugen voor meer informatie.
Premium-abonnement Gebeurtenisgestuurd. Automatisch uitschalen, zelfs tijdens perioden met hoge belasting. De Infrastructuur van Azure Functions schaalt CPU- en geheugenresources door meer exemplaren van de Functions-host toe te voegen op basis van het aantal gebeurtenissen waarop de functies worden geactiveerd. Windows: 100
Linux: 20-1002
Toegewezen abonnement3 Handmatige/automatische schaalaanpassing 10-30
100 (ASE)

1 Tijdens uitschalen geldt momenteel een limiet van 500 exemplaren per abonnement per uur voor Linux-apps in een verbruiksabonnement.
2 In sommige regio's kunnen Linux-apps in een Premium-abonnement worden geschaald naar 100 exemplaren. Zie het artikel over het Premium-abonnement voor meer informatie.
3 Zie de limieten van het App Service-plan voor specifieke limieten voor de verschillende App Service-planopties.

Gedrag van koude start

Plannen DETAILS
Verbruiksabonnement Apps kunnen worden geschaald naar nul wanneer ze niet actief zijn, wat betekent dat sommige aanvragen mogelijk meer latentie hebben bij het opstarten. Het verbruiksplan heeft enkele optimalisaties om de koude begintijd te verminderen, waaronder het ophalen van vooraf opgewarmde tijdelijke aanduidingenfuncties waarop de functiehost- en taalprocessen al worden uitgevoerd.
Flex Consumption-abonnement Ondersteunt altijd gereede instanties om de vertraging bij het inrichten van nieuwe exemplaren te verminderen.
Premium-abonnement Ondersteunt altijd gereede exemplaren om koude start te voorkomen door u een of meer permanent warme exemplaren te laten onderhouden.
Toegewezen abonnement Wanneer de Functions-host wordt uitgevoerd in een Dedicated-abonnement, kan deze continu worden uitgevoerd op een voorgeschreven aantal exemplaren, wat betekent dat koude start niet echt een probleem is.

Servicelimieten

Bron Verbruiksabonnement Flex Consumption-abonnement12 Premium-abonnement As-omgeving van toegewezen abonnement/
Standaard time-outduur (min.) 5 30 30 301
Maximale time-outduur (min.) 10 niet-gebonden15 niet-gebonden7 niet-gebonden2
Maximumaantal uitgaande verbindingen (per exemplaar) 600 actief (1.200 totaal) niet-gebonden niet-gebonden niet-gebonden
Maximale aanvraaggrootte (MB)3 100 100 100 100
Maximale tekenreekslengte voor query's3 4096 4096 4096 4096
Maximale lengte voor aanvraag-URL's3 8192 8192 8192 8192
ACU per exemplaar 100 Varieert 210-840 100-840/210-2508
Maximaal geheugen (GB per exemplaar) 1.5 413 3,5-14 1.75-14/3.5-14
Maximumaantal exemplaren (Windows/Linux) 200/100 1000 14 100/20 verschilt per SKU/1009
Functie-apps per abonnement11 100 100 100 niet-gebonden4
App Service-abonnementen 100 per regio N.v.t. 100 per resourcegroep 100 per resourcegroep
Implementatiesites per app10 2 N.v.t. 3 1-209
Opslag5 5 GB 250 GB 250 GB 50-1000 GB
Aangepaste domeinen per app 5006 500 500 500
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

Opmerkingen over servicelimieten:

  1. De time-out voor de Functions 1.x-runtime in een App Service-plan is standaard niet gebonden.
  2. Vereist dat het App Service-plan is ingesteld op AlwaysOn. 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 de machine-exemplaren en het bijbehorende resourcegebruik.
  5. De opslaglimiet is de totale inhoudsgrootte in tijdelijke opslag voor alle apps in hetzelfde App Service-plan. Verbruiksabonnement maakt gebruik van Azure Files voor tijdelijke opslag.
  6. Wanneer uw functie-app wordt gehost in een verbruiksabonnement, wordt alleen de CNAME-optie 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 tot 60 minuten.
  8. Werkrollen zijn rollen die klanten-apps hosten. Werkrollen zijn beschikbaar in drie vaste grootten: één vCPU/3,5 GB RAM; Twee vCPU/7 GB RAM; Vier vCPU/14 GB RAM.
  9. Zie App Service-limieten voor meer informatie.
  10. Inclusief de productiesite.
  11. Er is momenteel een limiet van 5000 functie-apps in een bepaald abonnement.
  12. Het Flex Consumption-abonnement is momenteel beschikbaar als preview-versie.
  13. De instantiegrootten van flexverbruiksabonnementen zijn momenteel gedefinieerd als 2048 MB of 4096 MB. Zie Exemplaargeheugen voor meer informatie.
  14. Flex Consumption-abonnement tijdens de preview-versie heeft een regionaal abonnementsquotum dat het totale geheugengebruik van alle exemplaren in een bepaalde regio beperkt. Zie Exemplaargeheugen voor meer informatie.
  15. In een Flex Consumption-abonnement dwingt de host geen uitvoeringstijdslimiet af. Er zijn momenteel echter geen garanties omdat het platform uw exemplaren mogelijk moet beëindigen tijdens het inschalen, implementaties of om updates toe te passen.

Netwerkfuncties

Functie Verbruiksabonnement Flex Consumption-abonnement Premium-abonnement As-omgeving van toegewezen abonnement/
Binnenkomende IP-beperkingen ✅Ja ✅Ja ✅Ja ✅Ja
Binnenkomende privé-eindpunten ❌No ✅Ja ✅Ja ✅Ja
Integratie van virtueel netwerk ❌No ✅Ja (regionaal) ✅Ja (regionaal) ✅Ja (regionaal en gateway)
Triggers voor virtuele netwerken (niet-HTTP) ❌No ✅Ja ✅Ja ✅Ja
Hybride verbindingen (alleen Windows) ❌No ✅Ja ✅Ja ✅Ja
Uitgaande IP-beperkingen ❌No ✅Ja ✅Ja ✅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.
Flex Consumption-abonnement Facturering is gebaseerd op het aantal uitvoeringen, het geheugen van exemplaren wanneer ze actief functies uitvoeren, plus de kosten van alle exemplaren die altijd gereed zijn. Zie Facturering voor Flex Consumption-abonnement voor meer informatie.
Premium-abonnement Premium-abonnement is gebaseerd op het aantal kern seconden en het geheugen dat wordt gebruikt voor de benodigde en voorafwarmde 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-plan als voor andere App Service-resources, zoals web-apps.

Voor een ASE is er een vast maandelijks tarief dat betaalt voor de infrastructuur en niet verandert met de grootte van de omgeving. 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. Zie het overzichtsartikel over ASE voor meer informatie.

Zie de pagina met prijzen van Azure Functions voor een directe kostenvergelijking tussen dynamische hostingabonnementen (Verbruik, Flex Consumption en Premium). Voor prijzen van de verschillende opties voor een Dedicated-abonnement raadpleegt u de pagina met prijzen van App Service. Zie De prijzen van Azure Container Apps voor het hosten van Container Apps.

Beperkingen voor het maken van nieuwe functie-apps in een bestaande resourcegroep

In sommige gevallen ontvangt u een van de volgende fouten wanneer u een nieuw hostingabonnement voor uw functie-app in een bestaande resourcegroep probeert te maken:

  • De prijscategorie is niet toegestaan in deze resourcegroep
  • <> SKU_name werknemers zijn niet beschikbaar in de resourcegroep <resource_group_name>

Dit kan gebeuren wanneer aan de volgende voorwaarden wordt voldaan:

  • U maakt een functie-app in een bestaande resourcegroep die ooit een andere functie-app of web-app bevat. Linux Consumption-apps worden bijvoorbeeld niet ondersteund in dezelfde resourcegroep als Linux Dedicated- of Linux Premium-abonnementen.
  • Uw nieuwe functie-app wordt gemaakt in dezelfde regio als de vorige app.
  • De vorige app is op een of andere manier niet compatibel met uw nieuwe app. Deze fout kan optreden tussen SKU's, besturingssystemen of vanwege andere functies op platformniveau, zoals ondersteuning voor beschikbaarheidszones.

De reden hiervoor is dat functie-app- en web-app-plannen worden toegewezen aan verschillende groepen resources wanneer ze worden gemaakt. Voor verschillende SKU's is een andere set infrastructuurmogelijkheden vereist. Wanneer u een app in een resourcegroep maakt, wordt die resourcegroep toegewezen en toegewezen aan een specifieke groep resources. Als u een ander plan in die resourcegroep probeert te maken en de toegewezen pool niet over de vereiste resources beschikt, treedt deze fout op.

Wanneer deze fout optreedt, maakt u in plaats daarvan uw functie-app en hostingabonnement in een nieuwe resourcegroep.

Volgende stappen