Delen via


Kosten op basis van verbruik schatten

In dit artikel leest u hoe u de plankosten voor de hostingabonnementen Verbruik en Flexverbruik kunt schatten.

Azure Functions biedt momenteel vier verschillende hostingabonnementen voor uw functie-apps, waarbij elk abonnement een eigen prijsmodel heeft:

Abonnement Beschrijving
Verbruik Er worden alleen kosten in rekening gebracht voor de tijd dat uw functie-app wordt uitgevoerd. Dit abonnement omvat een gratis toekenning per abonnement.
Flex Consumption-abonnement U betaalt voor uitvoeringstijd voor de exemplaren waarop uw functies worden uitgevoerd, plus eventuele altijd gereede exemplaren. Exemplaren worden dynamisch toegevoegd en verwijderd op basis van het aantal binnenkomende gebeurtenissen. Biedt ook ondersteuning voor integratie van virtuele netwerken.
Premium Biedt dezelfde functies en schaalmechanismen als het verbruiksabonnement, maar met verbeterde prestaties en integratie van virtuele netwerken. De kosten zijn gebaseerd op uw gekozen prijscategorie. Zie het Azure Functions Premium-abonnement voor meer informatie.
Toegewezen (App Service)
(Basic-laag of hoger)
Wanneer u op toegewezen VM's of in isolatie moet worden uitgevoerd, kunt u aangepaste installatiekopieën gebruiken of uw overtollige Capaciteit van het App Service-plan willen gebruiken. Maakt gebruik van reguliere facturering voor Een App Service-abonnement. De kosten zijn gebaseerd op uw gekozen prijscategorie.

Belangrijk

Het Flex Consumption-abonnement is momenteel beschikbaar als preview-versie.

U moet altijd het abonnement kiezen dat 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 verbruiks- en flexverbruiksabonnementen, omdat facturering in deze abonnementen afhankelijk is van actieve perioden van uitvoeringen binnen elke instantie.

Durable Functions kan ook worden uitgevoerd in beide abonnementen. Zie Facturering van Durable Functions 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.

De uitvoeringskosten van één functie worden gemeten in GB-seconden. De uitvoeringskosten worden berekend door het geheugengebruik te combineren met de uitvoeringstijd. Een functie die langer duurt, kost meer, net als een functie die meer geheugen verbruikt.

Overweeg een geval waarin de hoeveelheid geheugen die door de functie wordt gebruikt, constant blijft. In dit geval is het berekenen van de kosten eenvoudig vermenigvuldigen. Stel dat uw functie 0,5 GB gedurende 3 seconden heeft verbruikt. Vervolgens zijn 0.5GB * 3s = 1.5 GB-secondsde uitvoeringskosten.

Omdat het geheugengebruik na verloop van tijd verandert, is de berekening in wezen de integraal van het geheugengebruik in de loop van de tijd. Het systeem voert deze berekening uit door het geheugengebruik van het proces (samen met onderliggende processen) regelmatig te bemonsteren. Zoals vermeld op de pagina met prijzen, wordt het geheugengebruik afgerond op de dichtstbijzijnde bucket van 128 MB. Wanneer uw proces 160 MB gebruikt, worden er kosten in rekening gebracht voor 256 MB. Bij de berekening wordt rekening gehouden met gelijktijdigheid, wat meerdere gelijktijdige uitvoeringen van functies in hetzelfde proces is.

Notitie

Hoewel het CPU-gebruik niet rechtstreeks in de uitvoeringskosten wordt meegenomen, kan dit invloed hebben op de kosten wanneer dit van invloed is op de uitvoeringstijd van de functie.

Wanneer er voor een door HTTP geactiveerde functie een fout optreedt voordat uw functiecode wordt uitgevoerd, worden er geen kosten in rekening gebracht voor een uitvoering. Dit betekent dat 401 reacties van het platform vanwege api-sleutelvalidatie of de functie App Service-verificatie/autorisatie niet meetelt voor de uitvoeringskosten. Op dezelfde manier worden 5xx-statuscodeantwoorden niet meegeteld wanneer ze plaatsvinden in het platform voordat uw functie de aanvraag verwerkt. Een 5xx-antwoord dat door het platform wordt gegenereerd nadat uw functiecode is gestart, wordt nog steeds geteld als een uitvoering, zelfs als de fout niet wordt gegenereerd vanuit uw functiecode.

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.

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, wordt geteld 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#) wordt geteld 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.

In uw factuur kunt u de kostengerelateerde gegevens van Totale uitvoeringen - Functies en Uitvoeringstijd - Functies bekijken, samen met de werkelijke gefactureerde kosten. Deze factuurgegevens zijn echter een maandelijkse samenvoeging voor een eerdere factuurperiode.

Metrische gegevens op functie-app-niveau

Als u meer inzicht wilt krijgen in de kostenimpact van uw functies, kunt u Azure Monitor gebruiken om kostengerelateerde metrische gegevens weer te geven die momenteel worden gegenereerd door uw functie-apps.

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

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

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

  3. Kies in Metrisch het aantal uitvoeringen van functies en som voor aggregatie. Hiermee wordt de som van de uitvoeringsaantallen tijdens de gekozen periode aan de grafiek toegevoegd.

    Een metrische functie-app definiëren die moet worden toegevoegd aan de grafiek

  4. Selecteer Metrische gegevens toevoegen en herhaal stap 2-4 om functie-uitvoeringseenheden toe te voegen aan de grafiek.

De resulterende grafiek bevat de totalen voor beide metrische uitvoeringsgegevens in het gekozen tijdsbereik, in dit geval twee uur.

Grafiek van het aantal uitvoeringen van functies en uitvoeringseenheden

Omdat het aantal uitvoeringseenheden zoveel groter is dan het aantal uitvoeringen, worden in de grafiek alleen uitvoeringseenheden weergegeven.

In deze grafiek ziet u een totaal van 1,11 miljard Function Execution Units verbruikt in een periode van twee uur, gemeten in MB-milliseconden. Als u wilt converteren naar GB-seconden, deelt u deze door 1024000. In dit voorbeeld verbruikt 1110000000 / 1024000 = 1083.98 de functie-app GB-seconden. U kunt deze waarde nemen en vermenigvuldigen met de huidige prijs van de uitvoeringstijd op de pagina Functions-prijzen, die u de kosten van deze twee uur geeft, ervan uitgaande dat u al gratis toekenningen van uitvoeringstijd hebt gebruikt.

Metrische gegevens op functieniveau

Functie-uitvoeringseenheden zijn een combinatie van uitvoeringstijd en uw geheugengebruik, waardoor het lastig is om inzicht te krijgen in het geheugengebruik. Geheugengegevens zijn momenteel geen metrische gegevens die beschikbaar zijn via Azure Monitor. Als u echter het geheugengebruik van uw app wilt optimaliseren, kunt u de prestatiemeteritems gebruiken die worden verzameld door Application Insights.

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:

timestamp [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

Volgende stappen