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.

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.

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.

  1. A Azure Portal keresse meg a függvényalkalmazást.

  2. A bal oldali panelen görgessen le a Figyelés területre, és válassza a Metrikák lehetőséget.

  3. 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.

    Függvényalkalmazás-metrikák definiálása a diagramhoz való hozzáadáshoz

  4. 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.

Függvény-végrehajtási számokat és végrehajtási egységeket ábrázoló grafikon

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

Következő lépések