Odhad nákladů na základě spotřeby
V tomto článku se dozvíte, jak odhadnout náklady na plán pro plány Consumption a Flex Consumption hosting.
Azure Functions aktuálně nabízí pro vaše aplikace funkcí čtyři různé plány hostování, přičemž každý plán má vlastní cenový model:
Plán | Popis |
---|---|
Využití | Účtuje se vám jenom doba, po kterou běží vaše aplikace funkcí. Tento plán zahrnuje bezplatné granty na základě předplatného. |
Plán Flex Consumption | Platíte za dobu provádění instancí, na kterých jsou vaše funkce spuštěné, a za všechny instance, které jsou vždy připravené . Instance se dynamicky přidávají a odebírají na základě počtu příchozích událostí. Podporuje také integraci virtuální sítě. |
Premium | Poskytuje stejné funkce a mechanismus škálování jako plán Consumption, ale s lepším výkonem a integrací virtuální sítě. Náklady jsou založené na zvolené cenové úrovni. Další informace najdete v plánu Azure Functions Premium. |
Dedicated (App Service) (úroveň Basic nebo vyšší) |
Pokud potřebujete běžet na vyhrazených virtuálních počítačích nebo v izolaci, použijte vlastní image nebo chcete využít nadbytečnou kapacitu plánu služby App Service. Používá běžnou fakturaci plánu služby App Service. Náklady jsou založené na zvolené cenové úrovni. |
Vždy byste měli zvolit plán, který nejlépe podporuje funkce, výkon a požadavky na 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 plány Consumption a Flex Consumption, protože v těchto plánech fakturace závisí na aktivních obdobích provádění v jednotlivých instancích.
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.
Náklady na spuštění jedné funkce se měří v GB sekund. Náklady na spuštění se počítají zkombinováním využití paměti s časem spuštění. Funkce, která běží na delší náklady více, stejně jako funkce, která spotřebovává více paměti.
Představte si případ, kdy množství paměti používané funkcí zůstává konstantní. V tomto případě je výpočet nákladů jednoduchý násobení. Řekněme například, že vaše funkce spotřebovala 0,5 GB po dobu 3 sekund. Pak náklady na provádění jsou 0.5GB * 3s = 1.5 GB-seconds
.
Vzhledem k tomu, že se využití paměti v průběhu času mění, je výpočet v podstatě nedílnou součástí využití paměti v průběhu času. Systém provádí tento výpočet vzorkováním využití paměti procesu (spolu s podřízenými procesy) v pravidelných intervalech. Jak je uvedeno na stránce s cenami, využití paměti se zaokrouhlí nahoru na nejbližší kbelík 128 MB. Pokud váš proces používá 160 MB, účtuje se vám 256 MB. Výpočet bere v úvahu souběžnost, což je několik souběžných spuštění funkcí ve stejném procesu.
Poznámka:
I když využití procesoru není přímo považováno za náklady na spuštění, může mít vliv na náklady, pokud ovlivňuje dobu provádění funkce.
Pokud u funkce aktivované protokolem HTTP dojde k chybě před tím, než se kód funkce začne spouštět, nebudou se vám účtovat poplatky za provedení. To znamená, že 401 odpovědí z platformy kvůli ověření klíče rozhraní API nebo funkci ověřování nebo autorizace služby App Service se nezapočítávají do vašich nákladů na spuštění. Podobně se odpovědi stavového kódu 5xx nezapočítávají, když nastanou na platformě před tím, než vaše funkce zpracuje požadavek. Odpověď 5xx vygenerovaná platformou po spuštění kódu funkce se stále počítá jako spuštění, a to i v případě, že chyba není vyvolána z kódu funkce.
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. |
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 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 (
await
v 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 děje 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í dat souvisejících s náklady
Na faktuře můžete zobrazit data související s náklady celkových spuštění – Funkce a doba provádění – Functions spolu se skutečnými fakturovanými náklady. Tato data faktury jsou však měsíční agregací za období poslední faktury.
Metriky na úrovni aplikace funkcí
Pokud chcete lépe porozumět dopadu vašich funkcí na náklady, můžete pomocí služby Azure Monitor zobrazit metriky související s náklady, které aktuálně generují vaše aplikace funkcí.
Pomocí Průzkumníka metrik Služby Azure Monitor můžete zobrazit data související s náklady pro aplikace funkcí plánu 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 zvolte Metriky.
V metrikě zvolte Počet spuštění funkce a součet pro agregaci. Tím se do grafu přičte součet počtů spuštění během vybraného období.
Vyberte Přidat metriku a opakujte kroky 2 až 4 a přidejte do grafu jednotky provádění funkcí.
Výsledný graf obsahuje součty pro obě metriky spuštění ve zvoleném časovém rozsahu, což je v tomto případě dvě hodiny.
Vzhledem k tomu, že počet jednotek provádění je mnohem větší než počet spuštění, graf zobrazuje pouze jednotky provádění.
Tento graf zobrazuje celkem 1,11 miliardy Function Execution Units
spotřebovaných v dvouhodinovém období měřeném v MB-milisekundách. Pokud chcete převést na GB sekund, vydělte 1024000. V tomto příkladu aplikace funkcí spotřebovala 1110000000 / 1024000 = 1083.98
GB sekund. Tuto hodnotu můžete vzít a vynásobit aktuální cenou doby provádění na stránce s cenami služby Functions, která poskytuje náklady na tyto dvě hodiny za předpokladu, že jste už využili jakékoli bezplatné granty doby provádění.
Metriky na úrovni funkce
Jednotky spouštění funkcí jsou kombinací doby provádění a využití paměti, což ztěžuje pochopení využití paměti. Data paměti nejsou aktuálně k dispozici prostřednictvím služby Azure Monitor. Pokud ale chcete optimalizovat využití paměti aplikace, můžete použít data čítače výkonu shromážděná službou Application Insights.
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] | name | 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
name | averageDurationMilliseconds |
---|---|
QueueTrigger AvgDurationMs | 16.087 |
QueueTrigger MaxDurationMs | 90.249 |
QueueTrigger MinDurationMs | 8.522 |