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.
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:
- Altijd gereede exemplaren
- Integratie van virtueel netwerk
- Snel schalen op basis van gelijktijdigheid voor zowel HTTP- als niet-HTTP-apps
- Meerdere opties voor instantiegeheugengrootten
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 .
Bij schalen per functie worden beslissingen genomen voor bepaalde functietriggers op basis van groepsaggregaties. In deze tabel ziet u de gedefinieerde set functieschaalgroepen:
Groepen schalen | Triggers in groep | Waarde van instellingen |
---|---|---|
HTTP-triggers | HTTP-trigger SignalR-trigger |
http |
Blob Storage-triggers (op basis van Event Grid) |
Blob Storage-trigger | blob |
Durable Functions | Indelingstrigger Activiteittrigger Entiteitstrigger |
durable |
Alle andere functies in de app worden afzonderlijk geschaald in hun eigen set exemplaren, waarnaar wordt verwezen met behulp van de conventie function:<NAMED_FUNCTION>
.
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.
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 voor het verwerken van aanvragen. 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. |
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.
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.
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 heeft elke regio in een bepaald abonnement een geheugenlimiet van 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:
- Host: Er is een time-out van 30 seconden voor de initialisatie van apps. Wanneer het langer dan 30 seconden duurt voordat uw functie-app is gestart, ziet u mogelijk gRPC-gerelateerde
System.TimeoutException
vermeldingen die zijn geregistreerd. U kunt deze time-out momenteel niet configureren. Zie dit hostwerkitem voor meer informatie. - Durable Functions: Azure Storage is momenteel de enige ondersteunde opslagprovider voor Durable Functions wanneer deze wordt gehost in het Flex Consumption-abonnement. Bekijk aanbevelingen bij het hosten van Durable Functions in het Flex Consumption-abonnement.
- Integratie van virtuele netwerken 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 isMicrosoft.App/environments
. - Triggers: alle triggers worden volledig ondersteund, met uitzondering van Kafka- en Azure SQL-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.
- Implementaties: implementatiesites worden momenteel niet ondersteund.
- Schaal: De laagste maximale schaal is momenteel
40
. De hoogste ondersteunde waarde is1000
. - Beheerde afhankelijkheden: beheerde afhankelijkheden in PowerShell worden niet ondersteund door Flex Consumption. In plaats daarvan moet u uw eigen aangepaste modules definiëren.
- Diagnostische instellingen: Diagnostische instellingen worden momenteel niet ondersteund.
- Certificaten: het laden van certificaten met de WEBSITE_LOAD_CERTIFICATES app-instelling wordt momenteel niet ondersteund.
- Key Vault-verwijzingen: Key Vault-verwijzingen in app-instellingen werken niet wanneer Key Vault netwerktoegang beperkt is, zelfs als de functie-app virtual network-integratie heeft. De huidige tijdelijke oplossing is om rechtstreeks naar de Key Vault in code te verwijzen en de vereiste geheimen te lezen.
Verwante artikelen:
Hostingoptiesvoor Azure Functions: functie-apps maken en beheren in het Flex Consumption-abonnement