Felhasználásalapú költségek becslése
Ez a cikk bemutatja, hogyan becsülheti meg a rugalmas felhasználású használati és használati üzemeltetési tervek költségeit.
Az Azure Functions jelenleg ezeket a különböző üzemeltetési lehetőségeket kínálja a függvényalkalmazásokhoz, és mindegyik lehetőség saját üzemeltetési csomag díjszabási modellel rendelkezik:
Csomag | Leírás |
---|---|
Rugalmas kihasználtságú csomag | A végrehajtási időért azon példányokért kell fizetnie, amelyeken a függvények futnak, valamint minden mindig készen álló példányért. A rendszer dinamikusan hozzáadja és eltávolítja a példányokat a bejövő események száma alapján. Ez az ajánlott dinamikus méretezési terv, amely a virtuális hálózatok integrációját is támogatja. |
Prémium | Ugyanazokat a funkciókat és skálázási mechanizmust biztosítja, mint a Használati terv, de a jobb teljesítményt és a virtuális hálózat integrációját. A költség a választott tarifacsomagon alapul. További információ: Azure Functions Premium-csomag. |
Dedikált (App Service) (alapszintű vagy magasabb) |
Ha dedikált virtuális gépeken vagy elszigetelten kell futtatnia, használjon egyéni rendszerképeket, vagy használja a felesleges App Service-csomagkapacitást. Az App Service-csomag rendszeres számlázását használja. A költség a választott tarifacsomagon alapul. |
Container Apps | Tárolóalapú függvényalkalmazások létrehozása és üzembe helyezése az Azure Container Apps által üzemeltetett teljes körűen felügyelt környezetben, amellyel más mikroszolgáltatások, API-k, webhelyek és munkafolyamatok mellett futtathatja a függvényeket tárolóalapú programokként. |
Fogyasztás | Csak a függvényalkalmazás futtatásának idejére számítunk fel díjat. Ez a csomag előfizetésenként ingyenes támogatást tartalmaz. |
Fontos
A Rugalmas használat csomag jelenleg előzetes verzióban érhető el.
Mindig azt a lehetőséget kell választania, amely a legjobban támogatja a függvényvégrehajtások funkció-, teljesítmény- és költségkövetelményeit. További információkért tekintse meg az Azure Functions méretezését és üzemeltetését.
Ez a cikk a Rugalmas használat és a Felhasználás csomagokkal foglalkozik, mivel ezekben a csomagokban a számlázás az egyes példányokon belüli aktív végrehajtási időszakoktól függ.
A Durable Functions mindkét csomagban futtatható. A Durable Functions használata során figyelembe vett költségekkel kapcsolatos további információkért tekintse meg a Durable Functions számlázását.
Felhasználásalapú költségek
A felhasználásalapú költségek kiszámításának módja, beleértve az ingyenes támogatásokat is, az adott tervtől függ. A legfrissebb költségekről és a támogatásról az Azure Functions díjszabási oldalán tájékozódhat.
Két mód van, amelyek alapján a költségek az alkalmazások Flex Consumption csomagban való futtatásakor kerülnek meghatározásra. Minden mód példányonként van meghatározva.
Számlázási mód | Leírás |
---|---|
Igény szerint | Igény szerinti módban való futtatás esetén a rendszer csak arra az időre számláz, amíg a függvénykód fut az elérhető példányokon. Igény szerinti módban nincs szükség minimális példányszámra. Az alábbiakért kell fizetnie: • A kiosztott memória teljes mennyisége, miközben az egyes igény szerinti példányok aktívan hajtanak végre függvényeket (GB-másodpercben), és havonta ingyenes GB-s támogatást adnak. • A végrehajtások teljes száma, levonva az ingyenes támogatást (a végrehajtások számát) havonta. |
Mindig készen áll | Konfigurálhat egy vagy több példányt, amelyek meghatározott eseményindító-típusokhoz (HTTP/Durable/Blob) vannak rendelve, és amelyek mindig elérhetők a kérések kezeléséhez. Ha minden mindig kész példány engedélyezve van, a következőért kell fizetnie: • Az alapkonfigurációnak (GB-másodpercben) nevezett minden mindig kész példányban kiosztott memória teljes mennyisége. • A mindig készen álló példányok aktívan hajtják végre a függvényeket (GB-másodpercben). • A végrehajtások teljes száma. A mindig kész számlázásban nincsenek ingyenes támogatások. |
Ez az ábra az igény szerinti költségek meghatározásának módját mutatja be ebben a tervben:
A végrehajtási idő mellett, ha egy vagy több mindig kész példányt használ, alacsonyabb alapkonfigurációs díjszabással kell fizetnie a mindig készen álló példányok számához. A mindig kész példányok végrehajtási ideje olcsóbb lehet, mint az igény szerinti végrehajtással rendelkező példányok végrehajtási ideje.
Fontos
Ebben a cikkben az árak csak a példaszámítások megértéséhez érhetők el. Mindig ellenőrizze az Azure Functions díjszabási oldalát , amikor megbecsüli a rugalmas használatú csomagban futó függvények futtatása során felmerülő költségeket.
Az ebben a szakaszban szereplő példáknál tekintse meg a táblázatban szereplő kedvezményes előzetes díjszabást az USA keleti régiójában történő használatalapú fizetéshez.
Mód | Fogyasztásmérő | Ingyenes havi támogatások | Fogyasztási arányok |
---|---|---|---|
Igény szerinti | Végrehajtási idő (GB-ok) | 100,000 |
$0.000016 / GB |
Igény szerinti | Végrehajtások (darabszám) | 250,000 |
$0.20 /1 millió végrehajtás |
Mindig készen áll | Alapkonfiguráció (tétlen) ideje (GB-ok) | - | $0.000004 / GB |
Mindig készen áll | Végrehajtási idő (GB-ok) | - | $0.000009 / GB |
Mindig készen áll | Végrehajtások (darabszám) | - | $0.20 /1 millió végrehajtás |
Vegyünk egy függvényalkalmazást, amely csak HTTP-eseményindítókból áll, és az alábbi alapvető tényeket tartalmazza:
- A HTTP-triggerek másodpercenként 40 állandó kérést kezelnek.
- A HTTP-triggerek 10 egyidejű kérést kezelnek.
- A példány memóriaméretének beállítása.
2048 MB
- Nincsenek mindig kész példányok konfigurálva, ami azt jelenti, hogy az alkalmazás nullára skálázható.
Ilyen helyzetben a díjszabás inkább a kódvégrehajtás során végzett munka típusától függ. Vizsgáljuk meg két számítási feladat forgatókönyvét:
CPU-kötött számítási feladatok: A processzorhoz kötött számítási feladatokban nincs előnye annak, hogy több kérést dolgoz fel párhuzamosan ugyanabban a példányban. Ez azt jelenti, hogy jobb, ha az egyes kéréseket a saját példányára terjeszti, így a kérések a lehető leggyorsabban befejeződnek versengés nélkül. Ebben a forgatókönyvben alacsony HTTP-eseményindító egyidejűségét kell beállítania.
1
10 egyidejű kérés esetén az alkalmazás nagyjából 10 példány állandó állapotára skálázható, és minden példány folyamatosan aktív egy-egy kérés feldolgozásában.Mivel az egyes példányok mérete ~2 GB, egyetlen folyamatosan aktív példány
2 GB * 3600 s = 7200 GB-s
felhasználása, amely a feltételezett igény szerinti végrehajtási arány (ingyenes támogatás nélkül)$0.1152 USD
óránként történik példányonként. Mivel a processzorhoz kötött alkalmazás 10 példányra van skálázva, a végrehajtási idő teljes óradíja .$1.152 USD
Hasonlóképpen, az igény szerinti végrehajtási díj (ingyenes támogatás nélkül) másodpercenként 40 kérelem
40 * 3600 = 144,000
egyenlő vagy 0,144 millió végrehajtás óránként. A végrehajtások teljes (ingyenes) óránkénti költsége ekkor0.144 * $0.20
óránként van, ami óránként történik$0.0288
.Ebben a forgatókönyvben az igény szerinti futtatás óránkénti teljes költsége 10 példányon.
$1.152 + $0.0288 = $1.1808 USD
IO-kötött számítási feladatok: Az IO-kötött számítási feladatokban az alkalmazásidő nagy része a bejövő kérésekre való várakozással telik, amelyet a hálózati átviteli sebesség vagy más upstream-tényezők korlátozhatjak. A korlátozott bemenetek miatt a kód egyszerre több műveletet is feldolgozhat negatív hatások nélkül. Ebben a forgatókönyvben tegyük fel, hogy mind a 10 egyidejű kérést feldolgozhatja ugyanazon a példányon.
Mivel a használati díjak csak az egyes aktív példányok memóriáján alapulnak, a használati díj kiszámítása egyszerűen
2 GB * 3600 s = 7200 GB-s
történik, amely a feltételezett igény szerinti végrehajtási sebességnél (ingyenes támogatások alkalmazása nélkül) óránként történik$0.1152 USD
az egyetlen példány esetében.A processzorhoz kötött forgatókönyvhöz hasonlóan a másodpercenként 40 kérésből álló igény szerinti végrehajtási díj (ingyenes támogatás nélkül) óránként 0,144 millió végrehajtásnak felel
40 * 3600 = 144,000
meg. Ez a végrehajtások0.144 * $0.20
teljes (ingyenes) óránkénti költségét teszi ki, ami óránként történik$0.0288
.Ebben a forgatókönyvben az igény szerinti futtatás óránkénti teljes költsége egyetlen példányon.
$0.1152 + $0.0288 = $0.144 USD
Egyéb kapcsolódó költségek
Amikor megbecsüli a függvények bármely tervben való futtatásának általános költségét, ne feledje, hogy a Functions-futtatókörnyezet számos más Azure-szolgáltatást használ, amelyek mindegyike külön számlázva van. Ha megbecsüli a függvényalkalmazások díjszabását, a többi Azure-szolgáltatással integrálható eseményindítók és kötések esetében létre kell hoznia és fizetnie kell azokat.
A használati tervben futó függvények esetében a teljes költség a függvények végrehajtási költsége, valamint a sávszélesség és egyéb szolgáltatások költsége.
A függvényalkalmazás és a kapcsolódó szolgáltatások általános költségeinek becsléséhez használja az Azure díjszabási kalkulátorát.
Kapcsolódó költség | Leírás |
---|---|
Storage-fiók | Minden függvényalkalmazáshoz rendelkeznie kell egy általános célú Azure Storage-fiókkal, amelyet külön számlázunk ki. Ezt a fiókot a Functions-futtatókörnyezet belsőleg használja, de storage-eseményindítókhoz és kötésekhez is használhatja. Ha nincs tárfiókja, a függvényalkalmazás létrehozásakor létrejön egy. További információ: Tárfiókok követelményei. |
Application Insights | A Functions az Application Insightsra támaszkodva biztosít nagy teljesítményű monitorozási élményt a függvényalkalmazások számára. Bár nem szükséges, engedélyeznie kell az Application Insights-integrációt. Havonta ingyenesen biztosítjuk a telemetriai adatokat. További információkért tekintse meg az Azure Monitor díjszabási oldalát. |
Hálózati sávszélesség | Az adatátviteli költségek az adatátvitel irányától és forgatókönyvétől függően merülhetnek fel. További információkért tekintse meg a sávszélesség díjszabásának részleteit. |
A végrehajtási időt befolyásoló viselkedések
A függvények alábbi viselkedése befolyásolhatja a végrehajtási időt:
Eseményindítók és kötések: A függvénykötések bemenetének olvasásához és a kimenet írásához szükséges idő végrehajtási időnek számít. Ha például a függvény kimeneti kötéssel ír üzenetet egy Azure Storage-üzenetsorba, a végrehajtási idő magában foglalja az üzenet üzenetsorba való írásához szükséges időt, amelyet a függvényköltség kiszámítása tartalmaz.
Aszinkron végrehajtás: Az az idő, amikor a függvény egy aszinkron kérelem eredményeire vár (
await
C#-ban) végrehajtási időnek számít. A GB-másodperc számítás a függvény kezdési és befejezési időpontján, valamint az adott időszak memóriahasználatán alapul. Az, hogy mi történik az adott időszakban a CPU-tevékenység szempontjából, nem számít bele a számításba. A Durable Functions használatával csökkentheti az aszinkron műveletek költségeit. A vezénylési funkciókban töltött időért nem kell fizetnie.
Költséghez kapcsolódó adatok megtekintése
A számlán megtekintheti a Teljes végrehajtás – Függvények és végrehajtási idő – Függvények, valamint a tényleges számlázott költségek költséghez kapcsolódó adatait. Ezek a számlaadatok azonban egy múltbeli számlaidőszak havi összesítése.
Függvényalkalmazás-szintű metrikák
A függvények költséghatásának jobb megértése érdekében az Azure Monitor használatával megtekintheti a függvényalkalmazások által jelenleg létrehozott, költséghez kapcsolódó metrikákat.
Az Azure Monitor metrikaböngészőjével grafikus formátumban tekintheti meg a Használati terv függvényalkalmazások költséghez kapcsolódó adatait.
Az Azure Portalon keresse meg a függvényalkalmazást.
A bal oldali panelen görgessen le a Figyelés gombra, és válassza a Metrikák lehetőséget.
A Metrika területen válassza a Függvényvégrehajtások száma és az Összesítés összege lehetőséget. Ez hozzáadja a kiválasztott időszak végrehajtási darabszámának összegét a diagramhoz.
Válassza a Metrika hozzáadása lehetőséget, és ismételje meg a 2–4. lépést a függvényvégrehajtási egységek diagramhoz való hozzáadásához.
Az eredményként kapott diagram a kiválasztott időtartomány mindkét végrehajtási metrikájának összegét tartalmazza, amely ebben az esetben két óra.
Mivel a végrehajtási egységek száma sokkal nagyobb, mint a végrehajtási egységek száma, a diagram csak a végrehajtási egységeket jeleníti meg.
Ez a diagram összesen 1,11 milliárd Function Execution Units
felhasznált 2 órás időszakban, MB-ezredmásodpercben mérve. Gb-másodpercre konvertáláshoz ossza el 1024000-sel. Ebben a példában a függvényalkalmazás GB-másodpercet használt fel 1110000000 / 1024000 = 1083.98
. Ezt az értéket a Functions díjszabási oldalán megszorozhatja és megszorozhatja a végrehajtási idő aktuális árával, amely a két óra költségét adja meg, feltéve, hogy már felhasználta az ingyenes végrehajtási időt.
Függvényszintű metrikák
A függvényvégrehajtási egységek a végrehajtási idő és a memóriahasználat kombinációja, ami megnehezíti a memóriahasználat megértését. A memóriaadatok jelenleg nem az Azure Monitoron keresztül elérhető metrikák. Ha azonban optimalizálni szeretné az alkalmazás memóriahasználatát, használhatja az Application Insights által gyűjtött teljesítményszámláló adatokat.
Ha még nem tette meg, engedélyezze az Application Insightst a függvényalkalmazásban. Ezzel az integrációval lekérdezheti ezeket a telemetriai adatokat a portálon.
Az Azure Portalon az Azure Monitor metrikakezelője vagy a REST API-k segítségével lekérheti a Monitor Metrics-adatokat.
Memóriahasználat meghatározása
A Figyelés területen válassza a Naplók (Elemzés) lehetőséget, másolja ki a következő telemetriai lekérdezést, és illessze be a lekérdezési ablakba, és válassza a Futtatás lehetőséget. Ez a lekérdezés minden mintavételezett időpontban visszaadja a teljes memóriahasználatot.
performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value
Az eredmények a következő példához hasonlóan néznek ki:
időbélyeg [UTC] | név | Érték |
---|---|---|
2019.09.12. 1:05:14.947 | Privát bájtok | 209,932,288 |
2019.09.12., 1:06:14.994 | Privát bájtok | 212,189,184 |
2019.09.12. 1:06:30.010 | Privát bájtok | 231,714,816 |
2019.09.12., 1:07:15.040 | Privát bájtok | 210,591,744 |
2019.09.12., 1:12:16.285 | Privát bájtok | 216,285,184 |
2019.09.12., 1:12:31.376 | Privát bájtok | 235,806,720 |
Időtartam meghatározása
Az Azure Monitor az erőforrás szintjén követi nyomon a metrikákat, amelyek a Functions esetében a függvényalkalmazások. Az Application Insights-integráció függvényenként bocsát ki metrikákat. Íme egy példaelemzési lekérdezés egy függvény átlagos időtartamának lekéréséhez:
customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
név | averageDurationMilliseconds |
---|---|
QueueTrigger AvgDurationMs | 16.087 |
QueueTrigger MaxDurationMs | 90.249 |
QueueTrigger MinDurationMs | 8.522 |