Delen via


Hosting van Azure Functions Flex Consumption-abonnement

Flex Consumption is een op Linux gebaseerd Azure Functions-hostingabonnement dat voortbouwt op het verbruik voor wat u gebruikt voor het serverloze factureringsmodel. Het biedt u meer flexibiliteit en aanpasbaarheid door persoonlijke netwerken, de selectie van de geheugengrootte van exemplaren en snelle/grootschalige uitschalingsfuncties te introduceren die nog steeds zijn gebaseerd op een serverloos model.

Belangrijk

Het Flex Consumption-abonnement is momenteel beschikbaar als preview-versie. Zie Overwegingen voor een lijst met huidige beperkingen bij het gebruik van dit hostingabonnement. Zie Facturering voor actuele informatie over facturering tijdens de preview.

U kunt end-to-end voorbeelden bekijken die het Flex Consumption-abonnement bevatten in de opslagplaats met voorbeelden van Flex Consumption-plannen.

Vergoedingen

Het Flex Consumption-plan bouwt voort op de sterke punten van het Verbruiksabonnement, waaronder dynamische schaalaanpassing en facturering op basis van uitvoering. Met Flex Consumption krijgt u ook deze extra functies:

In deze tabel kunt u de functies van Flex Consumption rechtstreeks vergelijken met het hostingabonnement Verbruik:

Functie Verbruik Flexverbruik
Schalen naar nul ✅ Ja ✅ Ja
Schaalgedrag Gebeurtenisgestuurd Gebeurtenisgestuurd (snel)
Virtuele netwerken ❌ Niet ondersteund ✅ Ondersteund
Toegewezen rekenkracht (koude start beperken) ❌ Geen ✅ Altijd gereede instanties (optioneel)
Billing Alleen uitvoeringstijd Uitvoeringstijd + altijd gereede exemplaren
Uitschaalexemplaren (max. 200 1000

Zie functieschaal- en hostingopties voor een volledige vergelijking van het Flex Consumption-abonnement ten opzichte van het Verbruiksabonnement en alle andere typen hosting.

Integratie van virtueel netwerk

Flex Consumption breidt de traditionele voordelen van het Verbruiksabonnement uit door ondersteuning toe te voegen voor integratie van virtuele netwerken. Wanneer uw apps worden uitgevoerd in een Flex Consumption-abonnement, kunnen ze verbinding maken met andere Azure-services die in een virtueel netwerk zijn beveiligd. Allemaal terwijl u nog steeds kunt profiteren van serverloze facturering en schaal, samen met de schaal- en doorvoervoordelen van het Flex Consumption-abonnement. Zie Integratie van virtuele netwerken inschakelen voor meer informatie.

Exemplaargeheugen

Wanneer u uw functie-app maakt in een Flex Consumption-abonnement, kunt u de geheugengrootte selecteren van de exemplaren waarop uw app wordt uitgevoerd. Zie Facturering voor meer informatie over hoe de geheugengrootten van exemplaren van invloed zijn op de kosten van uw functie-app.

Flex Consumption biedt momenteel opties voor de geheugengrootte van exemplaren van zowel 2048 MB als 4096 MB.

Wanneer u besluit welke instantiegeheugengrootte u met uw apps wilt gebruiken, moet u rekening houden met het volgende:

  • De geheugengrootte van 2048 MB is de standaardgrootte van het exemplaar en moet worden gebruikt voor de meeste scenario's. Gebruik de geheugengrootte van 4096 MB voor gevallen waarin uw app meer gelijktijdigheid of hogere verwerkingskracht nodig heeft. Zie Exemplaargeheugen configureren voor meer informatie.
  • U kunt de grootte van het exemplaargeheugen op elk gewenst moment wijzigen. Zie Exemplaargeheugen configureren voor meer informatie.
  • Exemplaarbronnen worden gedeeld tussen uw functiecode en de Functions-host.
  • Hoe groter de geheugengrootte van het exemplaar, hoe meer elk exemplaar kan verwerken voor gelijktijdige uitvoeringen of meer intensieve CPU- of geheugenworkloads. Specifieke schaalbeslissingen zijn workloadspecifiek.
  • De standaard gelijktijdigheid van HTTP-triggers is afhankelijk van de geheugengrootte van het exemplaar. Zie gelijktijdigheid van HTTP-triggers voor meer informatie.
  • Beschikbare CPU's en netwerkbandbreedte worden opgegeven in verhouding tot een specifieke instantiegrootte.

Schaalaanpassing per functie

Gelijktijdigheid is een belangrijke factor die bepaalt hoe de schaal van flexverbruiksfuncties wordt aangepast. Om de schaalprestaties van apps met verschillende triggertypen te verbeteren, biedt het Flex Consumption-abonnement een meer deterministische manier om uw app per functie te schalen.

Dit schaalgedrag per functie maakt deel uit van het hostingplatform, dus u hoeft uw app niet te configureren of de code te wijzigen. Zie voor meer informatie schalen per functie in het artikel over gebeurtenisgestuurd schalen .

In schalen per functie zijn HTTP- en Blob-triggers (Event Grid) speciale gevallen. Alle door HTTP geactiveerde functies in de app worden gegroepeerd en geschaald in dezelfde exemplaren, en alle durable triggers (Orchestration, Activity of Entity triggers) worden gegroepeerd en geschaald in dezelfde exemplaren, en alle Blob-functies (Event Grid) worden gegroepeerd en geschaald in dezelfde exemplaren. Alle andere functies in de app worden afzonderlijk in hun eigen exemplaren geschaald.

Altijd gereede exemplaren

Flex Consumption bevat een altijd kant-en-klare functie waarmee u exemplaren kunt kiezen die altijd worden uitgevoerd en toegewezen aan elk van uw groepen of functies per functieschaal. Dit is een uitstekende optie voor scenario's waarbij u een minimum aantal exemplaren moet hebben die altijd gereed zijn om aanvragen te verwerken, bijvoorbeeld om de latentie van koude start van uw toepassing te verminderen. De standaardwaarde is 0 (nul).

Als u bijvoorbeeld altijd klaar bent voor 2 voor uw HTTP-groep functies, blijven twee exemplaren altijd actief en toegewezen aan uw app voor uw HTTP-functies in de app. Deze exemplaren verwerken uw functie-uitvoeringen, maar afhankelijk van gelijktijdigheidsinstellingen schaalt het platform buiten deze twee exemplaren met on-demand exemplaren.

Zie Always Ready Instance Counts instellen voor meer informatie over het configureren van altijd gereede exemplaren.

Gelijktijdigheid

Gelijktijdigheid verwijst naar het aantal parallelle uitvoeringen van een functie op een exemplaar van uw app. U kunt een maximum aantal gelijktijdige uitvoeringen instellen die op elk gewenst moment door elk exemplaar moeten worden verwerkt. Zie gelijktijdigheid van HTTP-triggers voor meer informatie.

Gelijktijdigheid heeft een direct effect op de schaal van uw app, omdat u op lagere gelijktijdigheidsniveaus meer exemplaren nodig hebt om de gebeurtenisgestuurde vraag voor een functie af te handelen. Hoewel u de gelijktijdigheid kunt beheren en afstemmen, bieden we standaardinstellingen die voor de meeste gevallen werken. Zie Http-gelijktijdigheidslimieten instellen voor HTTP-triggerfuncties voor meer informatie over het instellen van gelijktijdigheidslimieten.

Implementatie

Implementaties in het Flex Consumption-abonnement volgen één pad. Nadat uw projectcode is gebouwd en gezipt in een toepassingspakket, wordt deze geïmplementeerd in een blobopslagcontainer. Bij het opstarten haalt uw app het pakket op en voert u de functiecode uit vanuit dit pakket. Standaard wordt hetzelfde opslagaccount gebruikt voor het opslaan van interne hostmetagegevens (AzureWebJobsStorage) als de implementatiecontainer. U kunt echter een alternatief opslagaccount gebruiken of uw voorkeursverificatiemethode kiezen door de implementatie-instellingen van uw app te configureren. Bij het stroomlijnen van het implementatiepad is het niet langer nodig dat app-instellingen het implementatiegedrag beïnvloeden.

Billing

Er zijn twee modi waarmee uw kosten worden bepaald bij het uitvoeren van uw apps in het Flex Consumption-abonnement. Elke modus wordt per instantie bepaald.

Factureringsmodus Beschrijving
Op aanvraag Wanneer u in de modus op aanvraag wordt uitgevoerd, worden alleen kosten in rekening gebracht voor de hoeveelheid tijd die uw functiecode uitvoert op uw beschikbare exemplaren. In de modus op aanvraag is er geen minimumaantal exemplaren vereist. U wordt gefactureerd voor:

• De totale hoeveelheid geheugen die is ingericht terwijl elk exemplaar op aanvraag actief functies uitvoert (in GB-seconden), min een gratis toekenning van GB-s per maand.
• Het totale aantal uitvoeringen, min een gratis toekenning (aantal) uitvoeringen per maand.
Altijd gereed U kunt een of meer exemplaren configureren die zijn toegewezen aan specifieke triggertypen (HTTP/Durable/Blob) en afzonderlijke functies die altijd beschikbaar zijn om aanvragen te kunnen verwerken. Wanneer er altijd gereede instanties zijn ingeschakeld, wordt u gefactureerd voor:

• De totale hoeveelheid geheugen die is ingericht voor al uw altijd gereede exemplaren, ook wel de basislijn genoemd (in GB-seconden).
• De totale hoeveelheid geheugen die is ingericht tijdens de tijd dat elk altijd gereed exemplaar actief functies uitvoert (in GB-seconden).
• Het totale aantal uitvoeringen.

In altijd gereede facturering zijn er geen gratis subsidies.

De minimale factureerbare uitvoeringsperiode voor beide uitvoeringsmodi is 1000 ms. Daarna wordt de factureerbare activiteitsperiode afgerond op de dichtstbijzijnde 100 ms. U vindt meer informatie over de factureringsmeters van het Flex Consumption-abonnement in de naslaginformatie over bewaking.

Zie Kosten op basis van verbruik voor meer informatie over hoe kosten worden berekend wanneer u in een Flex Consumption-abonnement uitvoert, inclusief voorbeelden.

Zie de pagina met prijzen voor Azure Functions voor actuele informatie over de prijzen van de uitvoering, altijd gereed voor basislijnkosten en gratis subsidies voor uitvoeringen op aanvraag.

Ondersteunde taalstackversies

In deze tabel ziet u de taalstackversies die momenteel worden ondersteund voor Flex Consumption-apps:

Taalstack Vereiste versie
C# (geïsoleerde procesmodus)1 .NET 82
Java Java 11, Java 17
Node.js Knooppunt 20
Powershell PowerShell 7.4
Python Python 3.10, Python 3.11

1C# in-procesmodus wordt niet ondersteund. U moet in plaats daarvan uw .NET-codeproject migreren om te worden uitgevoerd in het geïsoleerde werkrolmodel.
2Vereist versie 1.20.0 of hoger van Microsoft.Azure.Functions.Worker en versie 1.16.2 of hoger van Microsoft.Azure.Functions.Worker.Sdk.

Geheugenquota voor regionaal abonnement

Momenteel in preview elke regio in een bepaald abonnement heeft een geheugenlimiet voor 512,000 MB alle exemplaren van apps die worden uitgevoerd op Flex Consumption-abonnementen. Dit betekent dat u in een bepaald abonnement en een bepaalde regio een combinatie van geheugengrootten en aantallen van exemplaren kunt hebben, zolang ze onder de quotumlimiet blijven. Elk van de volgende voorbeelden betekent bijvoorbeeld dat het quotum is bereikt en dat de apps stoppen met schalen:

  • U hebt één app van 2048 MB geschaald naar 100 en een tweede app van 2048 MB geschaald naar 150 exemplaren
  • U hebt één app van 2048 MB die is uitgeschaald naar 250 exemplaren
  • U hebt één app van 4096 MB die is uitgeschaald naar 125 exemplaren
  • U hebt één app van 4096 MB geschaald naar 100 en één app van 2048 MB geschaald naar 50 exemplaren

Dit quotum kan worden verhoogd zodat uw Flex Consumption-apps verder kunnen worden geschaald, afhankelijk van uw vereisten. Als uw apps een groter quotum nodig hebben, maakt u een ondersteuningsticket.

Afgeschafte eigenschappen en instellingen

In Flex Consumption worden veel van de standaardtoepassingsinstellingen en siteconfiguratie-eigenschappen die worden gebruikt in Bicep, ARM-sjablonen en het algehele besturingsvlak afgeschaft of verplaatst en moeten ze niet worden gebruikt bij het automatiseren van het maken van resources voor de functie-app. Zie Afschaffingen van flexverbruiksabonnementen voor meer informatie.

Overwegingen

Houd rekening met deze andere overwegingen bij het gebruik van een Flex Consumption-abonnement tijdens de huidige preview:

  • VNet-integratie Zorg ervoor dat de Microsoft.App Azure-resourceprovider is ingeschakeld voor uw abonnement door deze instructies te volgen. De subnetdelegering die is vereist voor Flex Consumption-apps is Microsoft.App/environments.
  • Triggers: alle triggers worden volledig ondersteund, met uitzondering van Kafka-, Azure SQL- en SignalR-triggers. De Blob Storage-trigger ondersteunt alleen de Event Grid-bron. Niet-C#-functie-apps moeten de versie [4.0.0, 5.0.0) van de extensiebundel of een latere versie gebruiken.
  • Regio's:
    • Niet alle regio's worden momenteel ondersteund. Zie Momenteel ondersteunde regio's weergeven voor meer informatie.
    • Er is een tijdelijke beperking waarbij app Service-quotumlimieten voor het maken van nieuwe apps ook worden toegepast op Flex Consumption-apps. Als u de volgende fout ziet: 'Deze regio heeft een quotum van 0 exemplaren voor uw abonnement. Selecteer een andere regio of SKU. Dien een ondersteuningsticket in, zodat het maken van uw app kan worden opgeheven.
  • Implementaties: deze implementatiefuncties worden momenteel niet ondersteund:
    • Implementatiesites
    • Continue implementatie met Behulp van Azure DevOps Tasks (AzureFunctionApp@2)
    • Continue implementatie met Behulp van GitHub Actions (functions-action@v1)
  • Schaal: de laagste maximale schaal in preview is 40. De hoogste ondersteunde waarde is 1000.
  • Autorisatie: EasyAuth wordt momenteel niet ondersteund. Niet-geverifieerde bellers worden momenteel niet geblokkeerd wanneer EasyAuth is ingeschakeld in een Flex Consumption-abonnements-app.
  • CORS: CORS-instellingen (Cross-Origin Resource Sharing) worden momenteel genegeerd voor Flex Consumption-apps.
  • Beheerde afhankelijkheden: beheerde afhankelijkheden in PowerShell worden niet ondersteund door Flex Consumption. In plaats daarvan moet u uw eigen aangepaste modules definiëren.

Hostingoptiesvoor Azure Functions: functie-apps maken en beheren in het Flex Consumption-abonnement