Kosten schatten voor verbruiksplan

Er zijn momenteel drie typen hostingplannen voor een app die wordt uitgevoerd in Azure Functions, met elk abonnement een eigen prijsmodel:

Plannen Beschrijving
Verbruik Er worden alleen kosten in rekening gebracht voor de tijd dat uw functie-app wordt uitgevoerd. Dit abonnement bevat een pagina met[gratis toekenningsprijzen] per abonnement. []
Premium Biedt u dezelfde functies en schaalmechanisme als het verbruiksplan, maar met verbeterde prestaties en VNET-toegang. De kosten zijn gebaseerd op de gekozen prijscategorie. Zie voor meer informatie Azure Functions Premium plan.
Toegewezen (App Service)
(Basic-laag of hoger)
Wanneer u wilt uitvoeren in toegewezen VM's of geïsoleerd, gebruikt u aangepaste afbeeldingen of wilt u uw overtollige capaciteit van App Service gebruiken. Maakt gebruik van App Service van een abonnement. De kosten zijn gebaseerd op de gekozen prijscategorie.

U hebt het plan gekozen dat het beste ondersteuning biedt voor uw functieprestaties en kostenvereisten. Zie Schalen en hosten Azure Functions voor meer informatie.

In dit artikel wordt alleen het verbruiksplan beschreven, omdat dit plan resulteert in variabele kosten. In dit artikel wordt het artikel Veelgestelde vragen over facturering van verbruiksplannen over kosten overschreven.

Durable Functions kunnen ook worden uitgevoerd in een verbruiksplan. Zie facturering voor meer informatie over de kostenoverwegingen bij Durable Functions gebruik van Durable Functions facturering.

Kosten van verbruiksabonnement

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

Denk bijvoorbeeld aan een geval waarin de hoeveelheid geheugen die wordt gebruikt door de functie constant blijft. In dit geval is het berekenen van de kosten een eenvoudige vermenigvuldiging. Stel bijvoorbeeld dat uw functie 0,5 GB heeft verbruikt voor 3 seconden. Vervolgens zijn de uitvoeringskosten 0.5GB * 3s = 1.5 GB-seconds .

Omdat het geheugengebruik na een periode verandert, is de berekening in feite het integraal onderdeel van het geheugengebruik in de tijd. Het systeem doet deze berekening door regelmatig een steekproef te nemen van het geheugengebruik van het proces (samen met onderliggende processen). Zoals vermeld op de [pagina met prijzen,]wordt het geheugengebruik afgerond naar 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. Dit zijn meerdere gelijktijdige functie-uitvoeringen in hetzelfde proces.

Notitie

Hoewel HET CPU-gebruik niet rechtstreeks wordt overwogen in de uitvoeringskosten, kan dit van invloed zijn op de kosten wanneer dit van invloed is op de uitvoeringstijd van de functie.

Wanneer er voor een 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 de validatie van de API-sleutel of de functie App Service-verificatie/autorisatie niet meetellen voor de uitvoeringskosten. Op dezelfde manier worden reacties van 5xx-statuscodes niet geteld wanneer ze plaatsvinden op het platform voordat een functie de aanvraag verwerkt. Een 5xx-antwoord dat door het platform wordt gegenereerd nadat uw functiecode is gestart om uit te voeren, wordt nog steeds geteld als een uitvoering, zelfs als de fout niet wordt gegenereerd door uw functiecode.

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

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

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

Gerelateerde kosten Beschrijving
Opslagaccount Elke functie-app vereist dat u een gekoppeld Algemeen Azure Storage accounthebt, dat afzonderlijk wordt gefactureerd. Dit account wordt intern gebruikt door de Functions-runtime, maar u kunt het ook gebruiken Storage triggers en bindingen. Als u geen opslagaccount hebt, wordt er een voor u gemaakt wanneer de functie-app wordt gemaakt. Zie accountvereisten voor Storage meer informatie.
Application Insights Functions is afhankelijk van Application Insights een krachtige bewakingservaring te bieden voor uw functie-apps. Hoewel dit niet vereist is, moet u Application Insights inschakelen. Elke maand wordt een gratis toekenning van telemetriegegevens opgenomen. Zie de pagina met prijzen Azure Monitor meer informatie.
Netwerkbandbreedte U betaalt niet voor gegevensoverdracht tussen Azure-services in dezelfde regio. U kunt echter kosten in rekening brengen voor uitgaande gegevensoverdrachten naar een andere regio of buiten Azure. Zie Prijsinformatie voor bandbreedte voor meer informatie.

Gedrag dat de uitvoeringstijd beïnvloedt

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. Dit is opgenomen in de berekening van de functiekosten.

  • Asynchrone uitvoering: de tijd dat uw functie wacht op de resultaten van een asynchrone aanvraag ( await in C#) wordt geteld als uitvoeringstijd. De berekening van GB-seconde is gebaseerd op de begin- en eindtijd van de functie en het geheugengebruik in die periode. Wat er in die periode gebeurt in termen van CPU-activiteit, wordt niet meegenomen in de berekening. Mogelijk kunt u de kosten verlagen tijdens asynchrone bewerkingen met behulp van Durable Functions. U wordt niet gefactureerd voor de tijd die is besteed aan awaits in orchestrator-functies.

In uw factuurkunt u de kostengerelateerde gegevens van Totaal aantal uitvoeringen - Functies en Uitvoeringstijd - Functies weergeven, samen met de werkelijke gefactureerde kosten. Deze factuurgegevens zijn echter een maandelijkse statistische functie voor een eerdere factuurperiode.

Metrische gegevens op app-niveau van functie

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

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

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

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

  3. Kies in Metrische gegevens Het aantal uitvoeringen van functies en Som voor Aggregatie. Hiermee wordt de som van het aantal uitvoeringen tijdens de gekozen periode toegevoegd aan de grafiek.

    Metrische gegevens voor een functie-app definiëren om toe te voegen aan de grafiek

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

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

Graph aantal function-uitvoeringen en uitvoeringseenheden

Omdat het aantal uitvoeringseenheden zoveel groter is dan het aantal uitvoeringen, toont de grafiek alleen uitvoeringseenheden.

In dit diagram ziet u in totaal 1,11 miljard verbruikt in een periode van twee uur, gemeten Function Execution Units in MB milliseconden. Als u wilt converteren naar GB-seconden, deelt u door 1024000. In dit voorbeeld heeft de functie-app 1110000000 / 1024000 = 1083.98 GB-seconden verbruikt. U kunt deze waarde nemen en vermenigvuldigen met de huidige prijs van de uitvoeringstijd op de pagina met prijzen voor Functions,waar u de kosten van deze twee uur krijgt, 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 prestatiemetergegevens gebruiken die door Application Insights.

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

U kunt gebruikmaken van Azure Monitor Metrics Explorer in de Azure Portal of REST API's om Metrische gegevens bewaken op te halen. []

Geheugen gebruik bepalen

Onder bewaking selecteert u Logboeken (analyse), kopieert u de volgende telemetrie-query en plakt u deze in het query venster en selecteert u uitvoeren. Met deze query wordt het totale geheugen gebruik voor elke steekproef periode geretourneerd.

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

De resultaten zien eruit als in het volgende voor beeld:

UTC-tijds tempel [] naam waarde
9/12/2019, 1:05:14 . 947 uur Privé-bytes 209.932.288
9/12/2019, 1:06:14 . 994 uur Privé-bytes 212.189.184
9/12/2019, 1:06:30 . 010 Privé-bytes 231.714.816
9/12/2019, 1:07:15 . 040 uur Privé-bytes 210.591.744
9/12/2019, 1:12:16 . 285 uur Privé-bytes 216.285.184
9/12/2019, 1:12:31 . 376 uur Privé-bytes 235.806.720

Duur bepalen

Azure Monitor worden metrische gegevens op het niveau van de resource bijgehouden, wat voor functies de functie-app is. Application Insights-integratie verzendt metrische gegevens per functie. Hier volgt een voor beeld van een analyse query 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 averageDurationMilliseconds
Queue trigger AvgDurationMs 16 . 087
Queue trigger MaxDurationMs 90 . 249
Queue trigger MinDurationMs 8 . 522

Volgende stappen