A használati terv költségeinek becslése
Jelenleg háromféle üzemeltetési csomag létezik egy Azure Functions futó alkalmazáshoz, amelyek mindegyik csomagja saját díjszabási modellel rendelkezik:
Felkészülés | Description |
---|---|
Használat | 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. |
Prémium | Ugyanazokat a funkciókat és skálázási mechanizmust biztosítja, mint a Használati csomag, de nagyobb teljesítményt és VNET-hozzáférést biztosí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 szintű) |
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. Rendszeres App Service csomag számlázását használja. A költség a választott tarifacsomagon alapul. |
Kiválasztotta azt a csomagot, amely a legjobban támogatja a függvényteljesítményt és a költségkövetelményeket. További információ: Azure Functions skálázás és üzemeltetés.
Ez a cikk csak a Használati csomaggal foglalkozik, mivel ez a csomag változó költségeket eredményez. Ez a cikk felülírja a használati terv költségének számlázásával kapcsolatos gyakori kérdéseket ismertető cikket.
Durable Functions használatalapú csomagban is futtathatók. A Durable Functions használatakor figyelembe vett költségekkel kapcsolatos további információkért lásd: Durable Functions számlázás.
Használatalapú csomag költségei
Egyetlen függvény végrehajtásának végrehajtási költségétGB-másodpercben méri a program. A végrehajtási költség kiszámítása a memóriahasználat és a végrehajtási idő egyesítésével történik. A hosszabb költségekért futó függvények, akárcsak a több memóriát használó függvények.
Fontolja meg azt az esetet, amikor a függvény által felhasznált memória mennyisége állandó marad. Ebben az esetben a költség kiszámítása egyszerű szorzás. Tegyük fel például, hogy a függvény 3 másodpercig 0,5 GB-ot használt fel. Ezután a végrehajtási költség a következő 0.5GB * 3s = 1.5 GB-seconds
: .
Mivel a memóriahasználat idővel változik, a számítás lényegében a memóriahasználat szerves része az idő múlásával. A rendszer ezt a számítást úgy végzi el, hogy rendszeres időközönként mintavételt végez a folyamat memóriahasználatáról (a gyermekfolyamatokkal együtt). A díjszabási oldalon leírtak szerint a memóriahasználat a legközelebbi 128 MB-os gyűjtőre kerekül fel. Ha a folyamat 160 MB-ot használ, 256 MB-ot kell fizetnie. A számítás figyelembe veszi az egyidejűséget, amely több egyidejű függvényvégrehajtás ugyanabban a folyamatban.
Megjegyzés
Bár a processzorhasználatot nem veszi figyelembe közvetlenül a végrehajtási költség, hatással lehet a költségekre, ha befolyásolja a függvény végrehajtási idejét.
HTTP által aktivált függvények esetén, ha a függvénykód végrehajtása előtt hiba történik, a rendszer nem számít fel díjat a végrehajtásért. Ez azt jelenti, hogy 401 válasz a platformról API-kulcs érvényesítése vagy a App Service Hitelesítési/engedélyezési funkció miatt nem számít bele a végrehajtási költségekbe. Hasonlóképpen, az 5xx állapotkódra adott válaszok nem lesznek megszámolva, amikor azok a platformon történnek, mielőtt egy függvény feldolgozta volna a kérést. A platform által a függvénykód végrehajtása után létrehozott 5xx-válasz továbbra is végrehajtásnak számít, még akkor is, ha a hibát nem a függvénykód okozza.
Egyéb kapcsolódó költségek
Amikor megbecsüli a függvények bármely csomagban 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 van számlázva. A függvényalkalmazások díjszabásának kiszámításakor az egyéb Azure-szolgáltatásokkal integrálható eseményindítók és kötések létrehozásához és kifizetéséhez létre kell hoznia és meg kell fizetnie ezeket a további szolgáltatásokat.
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 a további szolgáltatások költsége.
A függvényalkalmazás és a kapcsolódó szolgáltatások általános költségeinek becslésekor használja az Azure díjkalkulátorát.
Kapcsolódó költségek | Leírás |
---|---|
Storage-fiók | Minden függvényalkalmazáshoz rendelkeznie kell egy társított általános célú Azure Storage-fiókkal, amelynek számlázása külön történik. 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ámaszkodik, hogy nagy teljesítményű monitorozási élményt nyújtson 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óért tekintse meg az Azure Monitor díjszabását ismertető oldalt. |
Hálózati sávszélesség | Az adatátviteli költségek az adatáthelyezés irányától és forgatókönyvétől függően merülhetnek fel. További információ: Sávszélesség díjszabásának részletei. |
A végrehajtási időt befolyásoló viselkedések
A függvények következő 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 egy ü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 megvárja az aszinkron kérések eredményeit (
await
C#-ban), végrehajtási időnek számít. A GB-másodperc számítás alapja a függvény kezdési és befejezési időpontja, valamint az adott időszak memóriahasználata. Az, hogy mi történik az adott időszakban a CPU-tevékenység szempontjából, nem számítja ki a számítást. A Durable Functions használatával csökkentheti az aszinkron műveletek költségeit. A vezénylői funkciókban töltött időért nem kell fizetnie.
Költséghez kapcsolódó adatok megtekintése
A számlán megtekintheti a Total Executions – Functions and Execution Time – Functions (Összes végrehajtás – Függvények és végrehajtási idő – Függvények) és a tényleges számlázott költségek költséggel kapcsolatos adatait. Ezek a számlaadatok azonban egy múltbeli számlaidőszak havi összesítése.
Függvényalkalmazásszintű 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égekkel kapcsolatos metrikákat.
Az Azure Monitor metrikaböngészőjével grafikus formátumban tekintheti meg a használatalapú csomag függvényalkalmazásainak költséggel kapcsolatos adatait.
A Azure Portal keresse meg a függvényalkalmazást.
A bal oldali panelen görgessen le a Figyelés területre, é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őszakban a végrehajtások számá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 való konvertáláshoz ossza el 1024000-sel. Ebben a példában a függvényalkalmazás GB-másodpercet használt 1110000000 / 1024000 = 1083.98
fel. 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ény-vé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 érhetők el az Azure Monitoron keresztül. 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 Insights szolgáltatást a függvényalkalmazásban. Ha ez az integráció engedélyezve van, lekérdezheti ezeket a telemetriai adatokat a portálon.
A monitorozási metrikák adatainak lekéréséhez használhatja az Azure Monitor metrikaböngészőt a Azure Portal vagy a REST API-kban.
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, 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 az alábbi példához hasonlóan néznek ki:
időbélyeg [UTC] | name | é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ás. Az Application Insights-integráció függvényenként bocsát ki metrikákat. Íme egy példa elemzési lekérdezésre 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
name | averageDurationMilliseconds |
---|---|
QueueTrigger AvgDurationMs | 16.087 |
QueueTrigger MaxDurationMs | 90.249 |
QueueTrigger MinDurationMs | 8.522 |