Delen via


Kosten op basis van verbruik schatten

In dit artikel leest u hoe u plankosten kunt schatten voor zowel het Flex Consumption-abonnement als het verouderde verbruiksabonnement.

Kies de hostingoptie die het beste ondersteuning biedt voor de functie-, prestatie- en kostenvereisten voor uw functie-uitvoeringen. Zie Azure Functions schalen en hosten voor meer informatie.

Dit artikel is gericht op de twee verbruiksabonnementen, omdat facturering in deze abonnementen afhankelijk is van actieve perioden van uitvoeringen binnen elke instantie.

Biedt snelle horizontale schaalaanpassing, met flexibele rekenopties, integratie van virtuele netwerken en volledige ondersteuning voor verbindingen met behulp van Microsoft Entra ID-verificatie. In dit plan worden exemplaren dynamisch uitgeschaald op basis van geconfigureerde gelijktijdigheid per exemplaar, binnenkomende gebeurtenissen en workloads per functie voor optimale efficiëntie. Flex Consumption is het aanbevolen plan voor serverloze hosting. Zie Hosting van Azure Functions Flex Consumption-abonnement voor meer informatie.

Durable Functions kan ook worden uitgevoerd in beide abonnementen. Zie Durable Functions-facturering voor meer informatie over de kostenoverwegingen bij het gebruik van Durable Functions.

Kosten op basis van verbruik

De manier waarop de kosten op basis van verbruik worden berekend, inclusief gratis subsidies, is afhankelijk van het specifieke abonnement. Zie de pagina met prijzen van Azure Functions voor de meest recente kosten en het verlenen van informatie.

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.

In dit diagram ziet u hoe on-demand kosten in dit plan worden bepaald:

Grafiek van flexverbruiksabonnement op aanvraagkosten op basis van zowel belasting (aantal instanties) als tijd.

Naast de uitvoeringstijd betaalt u, wanneer u een of meer altijd gereede exemplaren gebruikt, een lager basislijntarief voor het aantal altijd gereede exemplaren dat u onderhoudt. Uitvoeringstijd voor altijd gereede exemplaren is mogelijk goedkoper dan uitvoeringstijd op exemplaren met uitvoering op aanvraag.

Belangrijk

In dit artikel worden prijzen op aanvraag gebruikt om u inzicht te geven in voorbeeldberekeningen. Controleer altijd de huidige kosten op de pagina met prijzen van Azure Functions bij het schatten van de kosten die u mogelijk ondervindt tijdens het uitvoeren van uw functies in het Flex Consumption-abonnement.

Overweeg een functie-app met alleen HTTP-triggers met deze basisgegevens:

  • HTTP-triggers verwerken 40 constante aanvragen per seconde.
  • HTTP-triggers verwerken 10 gelijktijdige aanvragen.
  • De geheugengrootte van het exemplaar is 2048 MB.
  • U configureert geen exemplaren die altijd gereed zijn, wat betekent dat de app naar nul kan schalen.

In een dergelijke situatie zijn prijzen afhankelijk van het soort werk dat wordt uitgevoerd tijdens het uitvoeren van code. Laten we eens kijken naar twee workloadscenario's:

  • CPU-afhankelijke workload: In een CPU-afhankelijke workload is er geen voordeel dat meerdere aanvragen parallel in hetzelfde exemplaar worden verwerkt. Deze beperking betekent dat u elke aanvraag beter kunt verdelen naar een aparte instantie, zodat aanvragen zo snel mogelijk worden voltooid zonder wedijver. In dit scenario stelt u een lage gelijktijdigheid voor de HTTP-trigger in van 1. Met 10 gelijktijdige aanvragen wordt de app geschaald naar een stabiele status van ongeveer 10 exemplaren en wordt elke instantie continu één aanvraag tegelijk verwerkt.

    Omdat de grootte van elk exemplaar ~2 GB is, is 2 GB * 3600 s = 7200 GB-shet verbruik voor één continu actief exemplaar. Uitgaande van een uitvoeringstarief op aanvraag van $ 0,000026 GB-s (zonder toegepaste gratis subsidies) worden de kosten $0.1872 USD per uur per instantie. Omdat de CPU-gebonden app wordt geschaald naar 10 exemplaren, is $1.872 USDhet totale uurtarief voor uitvoeringstijd.

    Op dezelfde manier zijn de kosten per uitvoering op aanvraag (zonder gratis subsidies) van 40 aanvragen per seconde gelijk aan 40 * 3600 = 144,000 of 0.144 million uitvoeringen per uur. Uitgaande van een on-demand snelheid van $0.40 uitvoeringen per miljoen, zijn de totale (toekenningsvrije) kosten van uitvoeringen 0.144 * $0.40per uur , wat per uur is $0.0576 .

    In dit scenario zijn $1.872 + $0.0576s = $1.9296 USDde totale uurkosten voor het uitvoeren van on-demand op 10 exemplaren .

  • Io-gebonden werkbelasting: in een IO-afhankelijke workload wordt de meeste toepassingstijd besteed aan het wachten op binnenkomende aanvragen, die mogelijk worden beperkt door netwerkdoorvoer of andere upstreamfactoren. Vanwege de beperkte invoer kan de code meerdere bewerkingen gelijktijdig verwerken zonder negatieve gevolgen. In dit scenario wordt ervan uitgegaan dat u alle 10 gelijktijdige aanvragen op hetzelfde exemplaar kunt verwerken.

    Omdat verbruikskosten alleen zijn gebaseerd op het geheugen van elke actieve instantie, is de berekening van de verbruikskosten simpelweg 2 GB * 3600 s = 7200 GB-s, die tegen de veronderstelde uitvoeringssnelheid op aanvraag (zonder gratis subsidies) per uur voor het ene exemplaar is $0.1872 USD toegepast.

    Net als in het CPU-gebonden scenario zijn de kosten per uitvoering op aanvraag (zonder gratis subsidies) van 40 aanvragen per seconde gelijk aan 40 * 3600 = 144,000 of 0,144 miljoen uitvoeringen per uur. In dit geval zijn de totale (toekenningsvrije) uurkosten van uitvoeringen 0.144 * $0.40, die per uur zijn $0.0576 .

    In dit scenario zijn $0.1872 + $0.0576 = $0.245 USDde totale uurkosten voor het uitvoeren van één exemplaar op aanvraag.

Gedrag dat van invloed is op de uitvoeringstijd

Het volgende gedrag van uw functies kan van invloed zijn op de uitvoeringstijd:

  • Triggers en bindingen: de tijd die nodig is om invoer van en schrijfuitvoer naar uw functiebindingen te lezen, telt als uitvoeringstijd. Wanneer uw functie bijvoorbeeld een uitvoerbinding gebruikt om een bericht naar een Azure-opslagwachtrij te schrijven, bevat de uitvoeringstijd de tijd die nodig is om het bericht naar de wachtrij te schrijven, dat is opgenomen in de berekening van de functiekosten.

  • Asynchrone uitvoering: de tijd waarop uw functie wacht op de resultaten van een asynchrone aanvraag (await in C#) telt als uitvoeringstijd. De berekening gb-seconde is gebaseerd op de begin- en eindtijd van de functie en het geheugengebruik gedurende die periode. Wat er in die tijd gebeurt in termen van CPU-activiteit, wordt niet meegenomen in de berekening. U kunt mogelijk kosten verlagen tijdens asynchrone bewerkingen met behulp van Durable Functions. Er worden geen kosten in rekening gebracht voor tijd die is besteed aan wachtpunten in orchestratorfuncties.

Kosten van metrische gegevens weergeven en schatten

In uw factuur kunt u de kostengerelateerde gegevens bekijken, samen met de werkelijke gefactureerde kosten. Deze factuurgegevens zijn echter een maandelijkse samenvoeging voor een eerdere factuurperiode.

In deze sectie wordt beschreven hoe u metrische gegevens, zowel op app-niveau als functie-uitvoeringen, kunt gebruiken om de kosten voor het uitvoeren van uw functie-apps te schatten.

Metrische gegevens op functie-app-niveau

De metrische gegevens op app-niveau die beschikbaar zijn voor uw app, zijn afhankelijk van het type verbruiksabonnement dat u gebruikt.

Deze metrische gegevens van Azure Monitor zijn gerelateerd aan facturering van flexverbruiksabonnementen:

Metrische gegevens Beschrijving Meterberekening
Aantal uitvoeringen van functie op aanvraag Totaal aantal uitvoeringen van functies in on-demand instanties. OnDemandFunctionExecutionCount houdt verband met de Totale uitvoeringen op aanvraag-meter.
Aantal always ready-functieuitvoeringen Het totale aantal uitvoeringen van functies in altijd gereede exemplaren. AlwaysReadyFunctionExecutionCount heeft betrekking op de meter Altijd Gereed Totale Uitvoeringen.
Uitvoeringsunits voor functies op aanvraag Totaal aantal MB-milliseconden van on-demand instanties tijdens het actief uitvoeren van functies. De OnDemandFunctionExecutionUnits / 1,024,000 is de On Demand-uitvoeringstijdmeter, aangegeven in GB-seconden.
Altijd beschikbaar uitvoeringseenheden Totaal aantal MB-milliseconden van altijd gereede exemplaren tijdens het actief uitvoeren van functies. AlwaysReadyFunctionExecutionUnits / 1,024,000 is de "Always Ready" uitvoeringstijdmeter, in GB-seconden.
Eenheden die altijd gereed zijn De totale MB-milliseconden van altijd gereede exemplaren die aan de app zijn toegewezen, ongeacht of functies actief worden uitgevoerd. AlwaysReadyUnits / 1,024,000 is de meter van de Always Ready Baseline, in GB-seconden.

Zie de naslaginformatie over bewakingsgegevens van Azure Functions voor meer informatie.

Als u de kosten van uw functies beter wilt begrijpen, gebruikt u Azure Monitor om kostengerelateerde metrische gegevens weer te geven die door uw functie-apps worden gegenereerd. U kunt metrische gegevens van Monitor weergeven met behulp van een van de volgende hulpprogramma's:

Gebruik Metrics Explorer van Azure Monitor om kostengerelateerde gegevens weer te geven voor uw Flex Consumption-functie-apps in een grafische indeling.

  1. Ga in Azure Portal naar uw functie-app.

  2. Schuif in het linkerdeelvenster omlaag naar Bewaking en selecteer Metrische gegevens.

  3. Selecteer in Metrisch het aantal uitvoeringen van de functie Op aanvraag en som voor aggregatie. Met deze selectie wordt de som van het aantal uitvoeringen tijdens de gekozen periode aan de grafiek toegevoegd.

  4. Selecteer Voeg metriek toe en voeg Uitvoeringseenheden voor functie op aanvraag toe, Uitvoeringsaantallen Altijd Gereed Functie, Uitvoeringseenheden Altijd Gereed Functie en Altijd Gereed Eenheden aan de grafiek.

De resulterende grafiek bevat de totalen voor alle metrische gegevens over de uitvoering van Flex Consumption in het gekozen tijdsbereik. In dit voorbeeld is dit een aangepast tijdsbereik.

Grafiek van het aantal uitvoeringen van functies op aanvraag en eenheden voor het uitvoeren van functies op aanvraag.

Omdat het aantal uitvoereenheden voor functie op aanvraag groter is dan het aantal uitvoeringen van functies op aanvraag en er geen altijd gereede exemplaren in de app zijn, worden in de grafiek alleen uitvoeringseenheden voor functie op aanvraag weergegeven.

In deze grafiek ziet u in totaal 3,54 miljard On Demand Function Execution Units verbruikt in een periode van 16 minuten, gemeten in MB-milliseconden. Als u wilt converteren naar GB-seconden, deelt u deze door 1.024.000. In dit voorbeeld verbruikt 3,540,000,000 / 1,024,000 = 3,457.03 de functie-app GB-seconden. U kunt deze waarde nemen en vermenigvuldigen met de huidige prijs van Uitvoeringstijd op aanvraag op de pagina Functions-prijzen, die u de kosten van deze 16 minuten geeft, ervan uitgaande dat u al gratis toekenningen van uitvoeringstijd hebt gebruikt. U kunt dezelfde berekening gebruiken met de metrische gegevens van de always ready-functieuitvoeringseenheden en de factureringsmeter voor Always Ready-uitvoeringstijd, evenals met de meetwaarde Always Ready Units en de factureringsmeter voor Always Ready Baseline om de kosten voor gb-seconden voor altijd gereede exemplaren te achterhalen.

Als u de kosten voor totale uitvoeringen op aanvraag wilt berekenen, neemt u de som van het aantal uitvoerbewerkingen op aanvraag voor dezelfde periode, converteert dit naar miljoenen en vermenigvuldigt het vervolgens met de prijs voor totale uitvoeringen op aanvraag op de pagina Functions-prijzen. In het bovenstaande voorbeeld worden bijvoorbeeld 2100 uitvoeringen geconverteerd naar 0.0021 miljoen uitvoeringen. U kunt dezelfde berekening gebruiken met de meetwaarde Always Ready Function Execution Count en de factureringsmeter Always Ready Total Executions om de kosten voor uitvoeringen te achterhalen die worden verwerkt door een altijd gereed exemplaar.

Metrische gegevens op functieniveau

Geheugengebruik is belangrijk bij het schatten van de kosten van uw functie-uitvoeringen. De manier waarop het geheugengebruik van invloed is op uw kosten, is echter afhankelijk van het specifieke type abonnement:

In het Flex Consumption-abonnement betaalt u voor de tijd dat de instantie draait op basis van de gekozen instantiegrootte, die een ingestelde geheugenlimiet heeft. Zie Facturering voor meer informatie.

Als u dit nog niet hebt gedaan, schakelt u Application Insights in uw functie-app in. Als deze integratie is ingeschakeld, kunt u deze telemetriegegevens opvragen in de portal.

U kunt Azure Monitor Metrics Explorer gebruiken in Azure Portal of REST API's om metrische gegevens van de monitor op te halen.

Geheugengebruik bepalen

Selecteer Logboeken (Analytics) onder Bewaking, kopieer de volgende telemetriequery en plak deze in het queryvenster en selecteer Uitvoeren. Deze query retourneert het totale geheugengebruik op elke steekproeftijd.

performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value

De resultaten zien eruit als in het volgende voorbeeld:

tijdstempel [UTC] naam waarde
9/12/2019, 1:05:14.947 AM Privébytes 209,932,288
9/12/2019, 1:06:14.994 AM Privébytes 212,189,184
12-9-2019, 1:06:30.010 uur Privébytes 231,714,816
12-9-2019, 1:07:15.040 uur Privébytes 210,591,744
12-9-2019, 1:12:16.285 AM Privébytes 216,285,184
9-12-2019, 1:12:31.376 AM Privébytes 235,806,720

Duur bepalen

Azure Monitor houdt metrische gegevens bij op resourceniveau, wat voor Functions de functie-app is. Application Insights-integratie verzendt metrische gegevens per functie. Hier volgt een voorbeeld van een analysequery om de gemiddelde duur van een functie op te halen:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
naam averageDurationMilliseconden
QueueTrigger AvgDurationMs 16.087
QueueTrigger MaxDurationMs 90.249
QueueTrigger MinDurationMs 8.522

Bij het schatten van de totale kosten voor het uitvoeren van uw functies in elk plan, moet u er rekening mee houden dat de Functions-runtime gebruikmaakt van verschillende andere Azure-services, die afzonderlijk worden gefactureerd. Wanneer u prijzen voor functie-apps inschatten, moeten alle triggers en bindingen die u met andere Azure-services integreert, maken en betalen voor die andere services.

Voor functies die worden uitgevoerd in een verbruiksabonnement, zijn de totale kosten de uitvoeringskosten van uw functies, plus de kosten van bandbreedte en andere services.

Gebruik de Azure-prijscalculator bij het schatten van de totale kosten van uw functie-app en gerelateerde services.

Gerelateerde kosten Beschrijving
Opslagaccount Voor elke functie-app moet u een gekoppeld Azure Storage-account voor algemeen gebruik hebben, dat afzonderlijk wordt gefactureerd. Dit account wordt intern gebruikt door de Functions-runtime, maar u kunt dit ook gebruiken voor opslagtriggers en -bindingen. Als u geen opslagaccount hebt, wordt er een voor u gemaakt wanneer de functie-app wordt gemaakt. Zie de vereisten voor opslagaccounts voor meer informatie.
Application Insights- Functies zijn afhankelijk van Application Insights om een krachtige bewakingservaring te bieden voor uw functie-apps. Hoewel dit niet vereist is, moet u Application Insights-integratie inschakelen. Elke maand wordt een gratis toekenning van telemetriegegevens opgenomen. Zie de pagina met prijzen van Azure Monitor voor meer informatie.
Netwerkbandbreedte U kunt kosten in rekening brengen voor gegevensoverdracht, afhankelijk van de richting en het scenario van de gegevensverplaatsing. Zie prijsinformatie voor bandbreedte voor meer informatie.

Volgende stappen