Eseményvezérelt skálázás az Azure Functionsben

A Használati és prémium csomagokban az Azure Functions a Functions-gazdagép további példányainak hozzáadásával skálázza a PROCESSZOR- és memóriaerőforrásokat. A példányok számát a függvényt kiváltó események száma határozza meg.

A Functions-gazdagép minden példánya korlátozott, általában 1,5 GB memóriára és egy CPU-ra. A gazdagép egy példánya a teljes függvényalkalmazás, ami azt jelenti, hogy a függvényalkalmazás összes függvénye megosztja az erőforrást egy példányon belül, és egyszerre méretezhető. Azok a függvényalkalmazások, amelyek azonos használati csomagban osztoznak, egymástól függetlenül skálázhatók. A Prémium csomagban a csomag mérete határozza meg a csomagban lévő összes alkalmazás számára elérhető memóriát és PROCESSZORt az adott példányon.

A függvénykódfájlok a függvény fő tárfiókjában található Azure Files-megosztásokon vannak tárolva. A függvényalkalmazás fő tárfiókjának törlésekor a függvénykódfájlok törlődnek, és nem állíthatók helyre.

Futásidejű skálázás

Az Azure Functions egy skálázási vezérlő nevű összetevővel figyeli az események sebességét, és meghatározza, hogy felskálázható vagy skálázható-e. A skálázásvezérlő heurisztikus módszert használ mindegyik triggertípushoz. Ha például egy Azure Queue Storage-eseményindítót használ, az célalapú skálázást használ.

Az Azure Functions skálázási egysége a függvényalkalmazás. A függvényalkalmazás vertikális felskálázása esetén a rendszer több erőforrást foglal le az Azure Functions-gazdagép több példányának futtatásához. Ezzel szemben a számítási igények csökkenésével a skálázásvezérlő eltávolítja a függvények gazdagéppéldányait. A példányok száma végül "felskálázva" lesz, ha egy függvényalkalmazáson belül egyetlen függvény sem fut.

Scale controller monitoring events and creating instances

Hideg kezdés

Miután a függvényalkalmazás percekig tétlen volt, a platform skálázhatja azoknak a példányoknak a számát, amelyeken az alkalmazás nullára fut. A következő kérelemben a nulláról az egyikre történő skálázás késése van hozzáadva. Ezt a késést hideg kezdésnek nevezzük. A függvényalkalmazás által igényelt függőségek száma befolyásolhatja a hideg kezdési időt. A hidegindítás inkább a szinkron műveletek, például a választ visszaadó HTTP-eseményindítók esetében jelent problémát. Ha a hidegindítások hatással vannak a függvényekre, érdemes lehet prémium csomagban vagy dedikált csomagban futni, ha engedélyezve van az Always on beállítás.

A méretezési viselkedés megértése

A skálázás több tényezőtől függően változhat, az alkalmazások pedig a kiválasztott eseményindítók és nyelv alapján eltérően méretezhetők. Néhány tudnivaló a skálázási viselkedésekkel kapcsolatban, amellyel érdemes tisztában lenni:

  • Maximális példányok: Egyetlen függvényalkalmazás csak a terv által megengedett maximális értékre skálázható fel. Egy példány azonban egyszerre több üzenetet vagy kérést is fel tud dolgozni, így az egyidejű végrehajtások száma nincs korlátozva. Igény szerint megadhat egy alacsonyabb maximumot a skálázás szabályozásához.
  • Új példányok aránya: HTTP-eseményindítók esetén az új példányok legfeljebb másodpercenként egyszer lesznek lefoglalva. A nem HTTP alapú triggerek esetében az új példányok lefoglalására legfeljebb 30 másodpercenként kerül sor. A skálázás gyorsabb, ha prémium szintű csomagban fut.
  • Célalapú skálázás: A célalapú skálázás gyors és intuitív skálázási modellt biztosít az ügyfelek számára, és jelenleg a Service Bus-üzenetsorok és -témakörök, a tárolási üzenetsorok, az Event Hubs és a Cosmos DB-bővítmények esetében támogatott. Ellenőrizze a célalapú skálázást, hogy megértse a skálázási viselkedésüket.

Vertikális felskálázás korlátozása

Előfordulhat, hogy korlátozni szeretné az alkalmazások által a vertikális felskálázáshoz használt példányok maximális számát. Ez a leggyakoribb azokban az esetekben, amikor egy alsóbb rétegbeli összetevő, például egy adatbázis korlátozott átviteli sebességgel rendelkezik. A használati terv függvényei alapértelmezés szerint akár 200 példányra is felskálázhatók, a Prémium csomagfüggvények pedig akár 100 példányra is felskálázhatók. Az érték módosításával functionAppScaleLimit megadhat alacsonyabb maximumot egy adott alkalmazáshoz. Az functionAppScaleLimit érték beállítható 0null vagy korlátozatlan, vagy érvényes érték lehet az alkalmazás és az alkalmazás közötti érték között 1 .

az resource update --resource-type Microsoft.Web/sites -g <RESOURCE_GROUP> -n <FUNCTION_APP-NAME>/config/web --set properties.functionAppScaleLimit=<SCALE_LIMIT>

Skálázási viselkedések

Az eseményvezérelt skálázás automatikusan csökkenti a kapacitást, ha csökken a függvények iránti kereslet. Ezt úgy teszi, hogy kiüríti az aktuális függvényvégrehajtások példányait, majd eltávolítja ezeket a példányokat. Ezt a viselkedést a rendszer ürítési módként naplózza. A jelenleg futó függvények türelmi ideje a Használatterv-alkalmazások esetében akár 10 percet, prémium szintű csomagalkalmazások esetében pedig akár 60 percet is igénybe vehet. Az eseményvezérelt skálázás és ez a viselkedés nem vonatkozik a dedikált csomagalkalmazásokra.

A méretezési viselkedésre az alábbi szempontok vonatkoznak:

  • A Windows rendszeren futó Használati terv függvényalkalmazások esetében csak a 2021 májusa után létrehozott alkalmazások rendelkeznek alapértelmezés szerint engedélyezett lefolyómód-működéssel.
  • A Service Bus-eseményindítót használó függvények kecses leállításának engedélyezéséhez használja a Service Bus-bővítmény 4.2.0-s vagy újabb verzióját.

Ajánlott eljárások és minták méretezhető alkalmazásokhoz

A függvényalkalmazásoknak számos olyan aspektusa van, amely hatással van a skálázásra, beleértve a gazdagép konfigurációját, a futásidejű erőforrásigényt és az erőforrás-hatékonyságot. További információkért tekintse meg a teljesítményproblémákról szóló cikk méretezhetőségi szakaszát. Azt is tudnia kell, hogy a kapcsolatok hogyan viselkednek a függvényalkalmazás skálázásakor. További információ: Kapcsolatok kezelése az Azure Functionsben.

A Python és a Node.js skálázásával kapcsolatos további információkért tekintse meg az Azure Functions Python fejlesztői útmutatóját – Skálázás és egyidejűség , valamint az Azure Functions Node.js fejlesztői útmutatója – Skálázás és egyidejűség.

Számlázási modell

A különböző csomagok számlázását részletesen az Azure Functions díjszabási oldalán ismertetjük. A használat a függvényalkalmazás szintjén van összesítve, és csak a függvénykód végrehajtásának időpontját számítja ki. A számlázáshoz az alábbi egységek tartoznak:

  • Erőforrás-felhasználás gigabájt másodpercben (GB-ban). A függvényalkalmazásban lévő összes függvény memóriaméretének és végrehajtási idejének kombinációjaként számítva.
  • Végrehajtások. Minden alkalommal megszámolva, amikor egy függvényt egy eseményindítóra válaszul hajtanak végre.

A számlázási gyakori kérdések között hasznos lekérdezések és információk találhatók a fogyasztási számla értelmezéséről.

Következő lépések

További tudnivalókért olvassa el a következő cikket: