Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak odhadnout náklady na plán Flex Consumption i starší plán Consumption.
Zvolte možnost hostování, která nejlépe podporuje požadavky na funkce, výkon a náklady pro provádění funkcí. Další informace najdete v tématu Škálování a hostování azure Functions.
Tento článek se zaměřuje na dva plány spotřeby, protože fakturace v těchto plánech závisí na aktivních obdobích vykonávání uvnitř každé instance.
Poskytuje rychlé horizontální škálování s flexibilními možnostmi výpočetních prostředků, integrací virtuální sítě a plnou podporou připojení pomocí ověřování Microsoft Entra ID. V tomto plánu se instance dynamicky škálují na základě nakonfigurované souběžnosti jednotlivých instancí, příchozích událostí a úloh pro jednotlivé funkce pro optimální efektivitu. Flex Consumption je doporučený plán pro bezserverové hostování. Další informace najdete v tématu Hostování plánu Flex Consumption služby Azure Functions.
Durable Functions může také běžet v obou těchto plánech. Další informace o aspektech nákladů při používání Durable Functions najdete v tématu Fakturace Durable Functions.
Náklady na základě spotřeby
Způsob výpočtu nákladů založených na spotřebě, včetně bezplatných grantů, závisí na konkrétním plánu. Informace o nejaktuálnějších nákladech a udělení najdete na stránce s cenami služby Azure Functions.
Při spouštění aplikací v plánu Flex Consumption se určují dva režimy, podle kterých se náklady určují. Každý režim je určen pro jednotlivé instance.
| Režim fakturace | Popis |
|---|---|
| Na požádání | Při spuštění v režimu na vyžádání se vám účtuje jenom doba, po kterou kód funkce běží na dostupných instancích. V režimu na vyžádání se nevyžaduje žádný minimální počet instancí. Účtuje se vám: • Celková velikost paměti zřízená, zatímco každá instance na vyžádání aktivně spouští funkce (v GB sekundách), minus bezplatný grant GB za měsíc. • Celkový počet spuštění minus bezplatný grant (počet) spuštění za měsíc. |
| Vždy připraveno | Můžete nakonfigurovat jednu nebo více instancí přiřazených ke konkrétním typům triggerů (HTTP/Durable/Blob) a jednotlivým funkcím, které jsou vždy k dispozici pro zpracování požadavků. Pokud máte povolené všechny vždy připravené instance, účtují se vám poplatky za: • Celková velikost paměti zřízená ve všech instancích, které jsou vždy připravené, označované jako standardní hodnoty (v GB sekundách). • Celková velikost paměti zřízená během doby, kdy každá vždy připravená instance aktivně spouští funkce (v GB sekundách). • Celkový počet spuštění. Ve vždy připravené fakturaci neexistují žádné bezplatné granty. |
Nejaktuálnější informace o cenách spouštění, vždy připravených standardních nákladů a bezplatných grantů na provádění na vyžádání najdete na stránce s cenami služby Azure Functions.
Tento diagram znázorňuje, jak se v tomto plánu určují náklady na vyžádání:
Kromě doby provádění platíte při použití jedné nebo více vždy připravených instancí nižší základní sazbu za počet vždy připravených instancí, které udržujete. Doba provádění pro vždy připravené instance může být levnější než doba provádění u instancí s prováděním na vyžádání.
Důležité
Tento článek používá ceny na vyžádání, které vám pomůžou porozumět ukázkovým výpočtům. Vždy zkontrolujte aktuální náklady na stránce s cenami služby Azure Functions při odhadu nákladů, ke které může dojít při spouštění funkcí v plánu Flex Consumption.
Zvažte aplikaci funkcí, která má pouze triggery HTTP s těmito základními fakty:
- Triggery HTTP zpracovávají 40 konstantních požadavků za sekundu.
- Triggery HTTP zpracovávají 10 souběžných požadavků.
- Velikost paměti instance je 2 048 MB.
- Nakonfigurujete žádné vždy připravené instance, což znamená, že aplikace se může škálovat na nulu.
V takové situaci závisí ceny více na druhu práce provedené během provádění kódu. Pojďme se podívat na dva scénáře úloh:
Úloha vázaná na procesor: V úloze vázané na procesor neexistuje žádná výhoda pro paralelní zpracování více požadavků ve stejné instanci. Toto omezení znamená, že lépe distribuujete jednotlivé požadavky do své vlastní instance, aby se požadavky co nejrychleji dokončily bez kolizí. V tomto scénáři nastavte nízkou souběžnost HTTP triggeru
1. Při 10 souběžných požadavcích se aplikace škáluje na stabilní stav zhruba 10 instancí a každá instance neustále zpracovává jeden požadavek najednou.Vzhledem k tomu, že velikost každé instance je ~2 GB, spotřeba pro jednu nepřetržitě aktivní instanci je
2 GB * 3600 s = 7200 GB-s. Za předpokladu, že sazba provádění na vyžádání je $0,000026 GB-s (bez použití bezplatných grantů), se náklady stanou$0.1872 USDza hodinu na instanci. Vzhledem k tomu, že aplikace vázané na procesor se škáluje na 10 instancí, celková hodinová rychlost pro dobu provádění je$1.872 USD.Podobně se poplatek za provedení na vyžádání (bez bezplatných grantů) 40 požadavků za sekundu rovná
40 * 3600 = 144,000nebo0.144 millionprovádění za hodinu. Za předpokladu, že se jedná o sazbu$0.40na vyžádání za milion spuštění, celkové (grant-free) hodinové náklady na provádění je0.144 * $0.40, což je$0.0576hodina.V tomto scénáři jsou
$1.872 + $0.0576s = $1.9296 USDcelkové hodinové náklady na provoz na vyžádání na 10 instancí .Vstupně-výstupní úloha: Ve vstupně-výstupních úlohách se většina času aplikace stráví čekáním na příchozí požadavek, což může být omezené propustností sítě nebo jinými nadřazenými faktory. Z důvodu omezených vstupů může kód zpracovávat více operací současně bez negativních dopadů. V tomto scénáři předpokládejme, že můžete zpracovat všech 10 souběžných požadavků ve stejné instanci.
Vzhledem k tomu, že poplatky za spotřebu jsou založeny pouze na paměti každé aktivní instance, výpočet poplatku za spotřebu je jednoduše
2 GB * 3600 s = 7200 GB-s, což se předpokládá, že míra provádění na vyžádání (bez použití bezplatných grantů) je$0.1872 USDpro jednu instanci každou hodinu.Stejně jako ve scénáři vázaném na procesor se
40 * 3600 = 144,000poplatky za spuštění na vyžádání (bez bezplatných grantů) 40 požadavků za sekundu rovnají 0,144 milionům spuštění za hodinu. V tomto případě jsou celkové (grant-free) hodinové náklady na provádění0.144 * $0.40, což je$0.0576za hodinu.V tomto scénáři jsou celkové hodinové náklady na provoz na vyžádání jedné instance
$0.1872 + $0.0576 = $0.245 USD.
Chování ovlivňující dobu provádění
Doba provádění může ovlivnit následující chování vašich funkcí:
Triggery a vazby: Doba potřebná ke čtení vstupu a zápisu výstupu do vazeb funkcí se počítá jako doba provádění. Pokud například vaše funkce používá výstupní vazbu k zápisu zprávy do fronty úložiště Azure, doba provádění zahrnuje čas potřebný k zápisu zprávy do fronty, která je součástí výpočtu nákladů na funkci.
Asynchronní spuštění: Doba, po kterou vaše funkce čeká na výsledky asynchronního požadavku (
awaitv jazyce C#), se počítá jako doba provádění. Výpočet GB-sekund je založen na počátečním a koncovém čase funkce a využití paměti v daném období. Co se v daném čase stane z hlediska aktivity procesoru, se do výpočtu nezapočítá. Můžete být schopni snížit náklady během asynchronních operací pomocí Durable Functions. Neúčtují se vám časy strávené na operátorech čekajících ve funkcích orchestrátoru.
Zobrazení a odhad nákladů z metrik
Na faktuře můžete zobrazit data související s náklady spolu se skutečnými fakturovanými náklady. Tato data faktury jsou však měsíční agregací za období poslední faktury.
V této části se dozvíte, jak používat metriky jak na úrovni aplikace, tak pro spouštění funkcí k odhadu nákladů na provoz vašich aplikačních funkcí.
Metriky na úrovni aplikace funkcí
Metriky na úrovni aplikace dostupné pro vaši aplikaci závisejí na typu plánu využití, který používáte.
Tyto metriky služby Azure Monitor souvisejí s fakturací plánu Flex Consumption:
| Ukazatel | Popis | Výpočet metru |
|---|---|---|
| Počet spuštění funkce na vyžádání | Celkový počet spuštění funkcí v instancích na požádání |
OnDemandFunctionExecutionCount se vztahuje na měřič celkových spuštění na vyžádání. |
| Počet spuštění funkce Always Ready | Celkový počet spuštění funkcí v instancích, které jsou vždy připravené. |
AlwaysReadyFunctionExecutionCount se vztahuje k měřiči celkového počtu spuštění Always Ready . |
| Jednotky spouštění funkcí na vyžádání | Celkový počet MB-milisekund z instancí na vyžádání při aktivním vykonávání funkcí. |
OnDemandFunctionExecutionUnits / 1,024,000 je měřič doby vykonávání na vyžádání v GB-sekundách. |
| Jednotky spuštění funkce Always Ready | Celkový počet MB milisekund ze stále aktivních instancí při aktivním spuštění funkcí. |
AlwaysReadyFunctionExecutionUnits / 1,024,000 je měřič doby provádění Always Ready Execution Time v GB-sekundách. |
| Vždy připravené jednotky | Celkový počet mb-milisekund vždy připravených instancí přiřazených aplikaci bez ohledu na to, jestli se aktivně spouští funkce. |
AlwaysReadyUnits / 1,024,000 je měřič základní úrovně Always Ready v GB-sekundách. |
Další informace najdete v referenčních informacích k datům monitorování služby Azure Functions.
Pokud chcete lépe porozumět nákladům na vaše funkce, můžete pomocí služby Azure Monitor zobrazit metriky související s náklady, které vaše aplikace funkcí generují. Metriky monitorování můžete zobrazit pomocí některého z těchto nástrojů:
Pomocí Průzkumníka metrik Azure Monitoru můžete zobrazit data související s náklady pro aplikace funkcí plánu Flex Consumption v grafickém formátu.
Na webu Azure Portal přejděte do aplikace funkcí.
Na levém panelu se posuňte dolů na Monitorování a vyberte Metriky.
V metrikě vyberte Počet spuštění funkce na vyžádání a součet pro agregaci. Tento výběr přidá do grafu součet provedení během vybraného období.
Vyberte Přidat metriku a přidejte jednotky provádění funkcí na vyžádání, počet spuštění funkcí Always Ready, jednotky spouštění funkce Always Ready, a jednotky Always Ready k grafu.
Výsledný graf obsahuje součty pro všechny metriky provádění Flex Consumption ve zvoleném časovém rozsahu, což je v tomto příkladu vlastní časový rozsah.
Vzhledem k tomu, že počet jednotek spouštění funkcí na vyžádání je větší než počet spuštění funkce na vyžádání a v aplikaci nebyly vždy připravené instance , graf zobrazuje pouze jednotky provádění funkce na vyžádání.
Tento graf zobrazuje celkem 3,54 miliardy On Demand Function Execution Units spotřebovaných za 16minutové období měřené v MB-milisekundách. Pro přepočet na GB-sekundy vydělte číslem 1 024 000. V tomto příkladu aplikace funkcí spotřebovala 3,540,000,000 / 1,024,000 = 3,457.03 GB sekund. Tuto hodnotu můžete vzít a vynásobit aktuální cenou doby provádění On Demand na stránce s cenami služby Functions, což vám poskytne náklady na těchto 16 minut za předpokladu, že jste už využili všechny bezplatné příděly doby provádění. Stejný výpočet můžete použít s metrikou Jednotky vykonávání funkcí Vždy Připraveno a náklady na fakturační metr času vykonávání pro Vždy Připraveno, stejně tak i s metrikou jednotek Vždy Připraveno a náklady na fakturační metr založené na základní hodnotě Vždy Připraveno, abyste zjistili náklady na GB-sekundy pro instance, které jsou vždy připravené.
Pokud chcete vypočítat celkové náklady na provádění na vyžádání, vezměte součet počtu spuštění funkce na vyžádání pro stejné časové období, převeďte na miliony a pak vynásobte celkovou cenu provedení na vyžádání na stránce s cenami služby Functions. Například 2 100 provádění v uvedeném příkladu výše se převede na 0.0021 milion provádění. Stejný výpočet můžete použít s metrikou Always Ready Function Execution Count (Počet spuštění funkce Always Ready) a měřičem fakturace Always Ready Total Executions, abyste zjistili náklady na provádění zpracovávané vždy připravenou instancí.
Metriky na úrovni funkce
Při odhadu nákladů na spouštění funkcí je důležité využití paměti. Způsob, jakým využití paměti ovlivňuje vaše náklady, ale závisí na konkrétním typu plánu:
V plánu Flex Consumption platíte za čas spuštění instance na základě zvolené velikosti instance, která má nastavený limit paměti. Další informace najdete v tématu Fakturace.
Pokud jste to ještě neudělali, povolte application Insights v aplikaci funkcí. Pokud je tato integrace povolená, můžete se na tato telemetrická data dotazovat na portálu.
K získání dat metrik monitorování můžete použít Průzkumník metrik Azure Monitoru na webu Azure Portal nebo rozhraní REST API.
Určení využití paměti
V části Monitorování vyberte Protokoly (Analytics) a zkopírujte následující telemetrický dotaz a vložte ho do okna dotazu a vyberte Spustit. Tento dotaz vrátí celkové využití paměti v každém vzorkovaném čase.
performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value
Výsledky vypadají jako v následujícím příkladu:
| časové razítko [UTC] | název | hodnota |
|---|---|---|
| 9.12.2019, 1:05:14.947 | Privátní bajty | 209,932,288 |
| 12.9.2019, 1:06:14.994 | Privátní bajty | 212,189,184 |
| 12.9.2019, 1:06:30.010 | Privátní bajty | 231,714,816 |
| 12.9.2019, 1:07:15.040 | Privátní bajty | 210,591,744 |
| 12.9.2019, 1:12:16.285 | Privátní bajty | 216,285,184 |
| 12.9.2019, 1:12:31.376 | Privátní bajty | 235,806,720 |
Určení doby trvání
Azure Monitor sleduje metriky na úrovni prostředků, což je aplikace funkcí pro Functions. Integrace Application Insights generuje metriky na základě jednotlivých funkcí. Tady je příklad analytického dotazu pro získání průměrné doby trvání funkce:
customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
| název | Průměrná délka v milisekundách |
|---|---|
| QueueTrigger AvgDurationMs | 16.087 |
| QueueTrigger MaxDurationMs | 90.249 |
| QueueTrigger MinDurationMs (Minimální trvání ve frontě v milisekundách) | 8.522 |
Další související náklady
Při odhadu celkových nákladů na provoz funkcí v jakémkoli plánu mějte na paměti, že modul runtime Functions používá několik dalších služeb Azure, které se účtují samostatně. Když odhadnete ceny pro aplikace funkcí, všechny triggery a vazby, které máte integrované s jinými službami Azure, vyžadují, abyste tyto další služby vytvořili a zaplatili za ně.
U funkcí běžících v plánu Consumption jsou celkové náklady na provádění vašich funkcí plus náklady na šířku pásma a další služby.
Při odhadu celkových nákladů na vaši aplikaci funkcí a souvisejících služeb použijte cenovou kalkulačku Azure.
| Související náklady | Popis |
|---|---|
| Účet úložiště | Každá aplikace funkcí vyžaduje, abyste měli přidružený účet Azure Storage pro obecné účely, který se účtuje samostatně. Tento účet používá modul runtime Služby Functions interně, ale můžete ho také použít pro triggery a vazby úložiště. Pokud účet úložiště nemáte, vytvoří se pro vás při vytvoření aplikace funkcí. Další informace najdete v tématu Požadavky na účet úložiště. |
| Application Insights | Funkce spoléhají na Application Insights , aby poskytovaly vysoce výkonné prostředí pro monitorování vašich aplikací funkcí. I když to není nutné, měli byste povolit integraci Application Insights. Každý měsíc se zahrne bezplatné udělení telemetrických dat. Další informace najdete na stránce s cenami služby Azure Monitor. |
| Šířka pásma sítě | Náklady na přenos dat můžete mít v závislosti na směru a scénáři přesunu dat. Další informace najdete v tématu Podrobnosti o cenách šířky pásma. |