Beräkna kostnader för förbrukningsplan

Det finns för närvarande tre typer av värdplaner för en app som körs i Azure Functions, där varje plan har en egen prismodell:

Planera Description
Förbrukning Du debiteras bara för den tid som funktionsappen körs. Den här planen innehåller [en sida][med kostnadsfria priser] för beviljande per prenumeration.
Premium Ger dig samma funktioner och skalningsmekanismer som förbrukningsplanen, men med bättre prestanda och VNET-åtkomst. Kostnaden baseras på din valda prisnivå. Mer information finns i Azure Functions Premium plan.
Dedikerad (App Service)
(basic-nivå eller högre)
När du behöver köra i dedikerade virtuella datorer eller isolerat använder du anpassade avbildningar eller vill använda din överflödiga App Service plan kapacitet. Använder vanlig App Service plan fakturering. Kostnaden baseras på din valda prisnivå.

Du har valt den plan som bäst stöder dina krav på funktionsprestanda och kostnader. Mer information finns i Azure Functions skala och vara värd för.

Den här artikeln behandlar endast förbrukningsplanen, eftersom den här planen resulterar i varierande kostnader. Den här artikeln ersätter artikeln Med vanliga frågor och svar om kostnadsfakturering för förbrukningsplan.

Durable Functions kan också köras i en förbrukningsplan. Mer information om kostnadsöverväganden när du använder Durable Functions finns i Durable Functions fakturering.

Kostnader för förbrukningsplan

Körningskostnaden för en enskild funktionskörning mäts i GB-sekunder. Körningskostnaden beräknas genom att kombinera minnesanvändningen med körningstiden. En funktion som körs längre kostar mer, precis som en funktion som förbrukar mer minne.

Tänk dig ett fall där mängden minne som används av funktionen förblir konstant. I det här fallet är beräkningen av kostnaden enkel multiplikation. Säg till exempel att din funktion förbrukade 0,5 GB i 3 sekunder. Körningskostnaden är 0.5GB * 3s = 1.5 GB-seconds då .

Eftersom minnesanvändningen ändras med tiden är beräkningen i stort sett den integrerade minnesanvändningen över tid. Systemet gör den här beräkningen genom att regelbundet ta del av processens minnesanvändning (tillsammans med underordnade processer). Som vi nämnde på [prissättningssidan]avrundas minnesanvändningen uppåt till närmaste bucket på 128 MB. När processen använder 160 MB debiteras du för 256 MB. Beräkningen tar hänsyn till samtidighet, vilket är flera samtidiga funktionskörningar i samma process.

Anteckning

Processoranvändningen beaktas inte direkt i körningskostnaden, men den kan påverka kostnaden när den påverkar körningstiden för funktionen.

När ett fel inträffar innan funktionskoden börjar köras för en HTTP-utlöst funktion debiteras du inte för en körning. Det innebär att 401-svar från plattformen på grund av API-nyckelvalidering eller funktionen App Service-autentisering/auktorisering inte räknas mot din körningskostnad. På samma sätt räknas inte 5xx statuskodsvar när de inträffar på plattformen innan en funktion bearbetar begäran. Ett 5xx-svar som genereras av plattformen när funktionskoden har börjat köras räknas fortfarande som en körning, även om felet inte utlöses av funktionskoden.

När du beräknar den totala kostnaden för att köra dina funktioner i en plan bör du komma ihåg att Functions-körningen använder flera andra Azure-tjänster, som var och en faktureras separat. När du beräknar prissättningen för funktionsappar kräver alla utlösare och bindningar som du har som integrerar med andra Azure-tjänster att du skapar och betalar för dessa ytterligare tjänster.

För funktioner som körs i en förbrukningsplan är den totala kostnaden körningskostnaden för dina funktioner, plus kostnaden för bandbredd och ytterligare tjänster.

När du beräknar de totala kostnaderna för din funktionsapp och relaterade tjänster använder du priskalkylatorn för Azure.

Relaterad kostnad Beskrivning
Lagringskonto Varje funktionsapp kräver att du har ett Generell användning Azure Storage konto, som faktureras separat. Det här kontot används internt av Functions-körningen, men du kan också använda det för att Storage utlösare och bindningar. Om du inte har något lagringskonto skapas ett åt dig när funktionsappen skapas. Mer information finns i Storage kontokrav.
Application Insights Functions förlitar sig på Insights för att tillhandahålla en övervakningsupplevelse med höga prestanda för dina funktionsappar. Även om det inte krävs bör du aktivera Application Insights-integrering. Ett kostnadsfritt beviljande av telemetridata ingår varje månad. Mer information finns på Azure Monitor prissättningssidan.
Nätverksbandbredd Du betalar inte för dataöverföring mellan Azure-tjänster i samma region. Du kan dock medföra kostnader för utgående dataöverföringar till en annan region eller utanför Azure. Mer information finns i Prisinformation för bandbredd.

Beteenden som påverkar körningstiden

Följande funktionsbeteenden kan påverka körningstiden:

  • Utlösare och bindningar: Den tid det tar att läsa indata från och skriva utdata till dina funktionsbindningar räknas som körningstid. När din funktion till exempel använder en utdatabindning för att skriva ett meddelande till en Azure Storage-kö inkluderar körningstiden den tid det tar att skriva meddelandet till kön, vilket ingår i beräkningen av funktionskostnaden.

  • Asynkron körning: Den tid som funktionen väntar på resultatet av en asynkron begäran ( i await C#) räknas som körningstid. Beräkningen i GB-sekund baseras på start- och sluttiden för funktionen och minnesanvändningen under den perioden. Vad som händer under den tiden vad gäller CPU-aktivitet räknas inte in i beräkningen. Du kan kanske minska kostnaderna under asynkrona åtgärder genom att använda Durable Functions. Du debiteras inte för tid som spenderas på awaits i orkestreringsfunktioner.

din fakturakan du visa kostnadsrelaterade data för totalt antal körningar – funktioner och körningstid – funktioner, tillsammans med de faktiska fakturerade kostnaderna. Dessa fakturadata är dock en månatlig aggregering för en tidigare fakturaperiod.

Mått på funktionsappnivå

För att bättre förstå kostnadspåverkan för dina funktioner kan du använda Azure Monitor för att visa kostnadsrelaterade mått som för närvarande genereras av dina funktionsappar.

Använd Azure Monitor Metrics Explorer för att visa kostnadsrelaterade data för dina förbrukningsplanfunktionsappar i ett grafiskt format.

  1. I [Azure Portal]du till funktionsappen.

  2. I den vänstra panelen rullar du ned till Övervakning och väljer Mått.

  3. Från Mått väljer du Antal funktionskörningar och Summa för Sammansättning. Detta lägger till summan av antalet körningar under den valda perioden i diagrammet.

    Definiera ett functions-appmått som ska läggas till i diagrammet

  4. Välj Lägg till mått och upprepa steg 2–4 för att lägga till funktionskörningsenheter i diagrammet.

Det resulterande diagrammet innehåller summorna för båda körningsmåtten i det valda tidsperioden, vilket i det här fallet är två timmar.

Graph antal funktionskörningar och körningsenheter

Eftersom antalet körningsenheter är så mycket större än antalet körningar visar diagrammet bara körningsenheter.

Det här diagrammet visar totalt 1,11 miljarder förbrukade under en tvåtimmarsperiod, mätt i Function Execution Units MB-millisekunder. Om du vill konvertera till GB-sekunder dividera med 1024000. I det här exemplet förbrukade funktionsappen 1110000000 / 1024000 = 1083.98 GB-sekunder. Du kan ta det här värdet och multiplicera med det aktuella priset för körningstiden på sidan med Functions-priser, som ger dig kostnaden för dessa två timmar, förutsatt att du redan har använt några kostnadsfria bidrag för körningstid.

Mått på funktionsnivå

Funktionskörningsenheter är en kombination av körningstid och minnesanvändning, vilket gör det svårt att förstå minnesanvändningen. Minnesdata är för närvarande inte ett mått som är tillgängligt via Azure Monitor. Men om du vill optimera minnesanvändningen för din app kan du använda prestandaräknardata som samlas in av Application Insights.

Om du inte redan gjort det aktiverar du Application Insights i funktionsappen. När den här integreringen är aktiverad kan du köra frågor mot dessa telemetridata i portalen.

Du kan använda antingen Azure Monitor Metrics Explorer i [Azure Portal-] eller REST-API:er för att hämta övervakningsmåttdata.

Fastställa minnes användning

Under övervakning väljer du loggar (analys) och kopierar sedan följande telemetri-fråga och klistrar in den i frågefönstret och väljer Kör. Den här frågan returnerar den totala minnes användningen vid varje prov tid.

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

Resultatet ser ut som i följande exempel:

tidsstämpel [ UTC] name värde
9/12/2019, 1:05:14 . 947 am Privata byte 209 932 288
9/12/2019, 1:06:14 . 994 am Privata byte 212 189 184
9/12/2019 1:06:30 . 010 am Privata byte 231 714 816
9/12/2019, 1:07:15 . 040 am Privata byte 210 591 744
9/12/2019, 1:12:16 . 285 am Privata byte 216 285 184
9/12/2019, 1:12:31 . 376 am Privata byte 235 806 720

Bestäm varaktighet

Azure Monitor spårar mått på resurs nivå, som för functions är Function-appen. Application Insights integration genererar mått per funktion. Här är ett exempel på en analys fråga som hämtar den genomsnittliga varaktigheten för en funktion:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
name averageDurationMilliseconds
QueueTrigger AvgDurationMs 16 . 087
QueueTrigger MaxDurationMs 90 . 249
QueueTrigger MinDurationMs 8 . 522

Nästa steg