Megosztás a következőn keresztül:


Ajánlott eljárások a megbízható Azure Functions használatához

Az Azure Functions egy eseményvezérelt, igény szerinti számítási szolgáltatás, amely kibővíti a meglévő Azure App Service-alkalmazásplatformot. Képességeket ad az Azure-ban, a partnerszolgáltatásban és a helyszíni rendszerekben bekövetkező események által aktivált kód implementálásához. A Functions használatával olyan megoldásokat hozhat létre, amelyek adatforrásokhoz vagy üzenetkezelési megoldásokhoz csatlakoznak, így könnyebben feldolgozhatók és reagálhatnak az eseményekre. A függvények azure-adatközpontokban futnak, amelyek számos integrált összetevővel összetettek. Üzemeltetett felhőkörnyezetben a virtuális gépek időnként újraindulhatnak vagy áthelyezhetők, és rendszerfrissítések következhetnek be. A függvényalkalmazások valószínűleg külső API-któl, Azure-szolgáltatásoktól és más adatbázisoktól is függenek, amelyek szintén hajlamosak az időszakos megbízhatatlanságra.

Ez a cikk néhány ajánlott eljárást ismertet a hatékony, kifogástalan állapotú és felhőalapú környezetben jól teljesítő függvényalkalmazások tervezéséhez és üzembe helyezéséhez.

Válassza ki a megfelelő üzemeltetési tervet

Amikor függvényalkalmazást hoz létre az Azure-ban, ki kell választania egy üzemeltetési csomagot az alkalmazáshoz. A választott terv hatással van a teljesítményre, a megbízhatóságra és a költségekre. Az Azure Functions a következő üzemeltetési csomagokat biztosítja:

Ha lehetséges, használja a Flex Consumption csomagot a dinamikus skálázási alkalmazások üzemeltetéséhez.

Az App Service platform kontextusában a függvényeket dinamikusan üzemeltető Premium-csomag az Elastic Premium csomag (EP). Az egyéb dedikált (App Service-) csomagokat prémium szintűnek nevezzük. További információ: Azure Functions Premium-csomag.

A választott üzemeltetési csomag a következő viselkedéseket határozza meg:

  • Hogyan méretezhető a függvényalkalmazás az igények alapján, és hogyan kezelhető a példányok kiosztása.
  • Az egyes függvényalkalmazás-példányok számára elérhető erőforrások.
  • Speciális funkciók, például azure-beli virtuális hálózati kapcsolatok támogatása.

A megfelelő üzemeltetési csomag kiválasztásáról és a csomagok részletes összehasonlításáról az Azure Functions üzemeltetési lehetőségei között talál további információt.

Válassza ki a megfelelő tervet a függvényalkalmazás létrehozásakor. A Functions korlátozott lehetőséget biztosít az üzemeltetési csomag váltására, elsősorban a Fogyasztás és az Elastic Premium csomagok között. További információért lásd: Migrálás megtervezése.

A tárolás megfelelő konfigurálása

A függvényekhez tárfiókot kell társítani a függvényalkalmazáshoz. A Functions-gazdagép a tárfiók-kapcsolatot használja olyan műveletekhez, mint az eseményindítók kezelése és a naplózási függvények végrehajtása. A függvényalkalmazások dinamikus skálázásakor is használatos. További információért lásd az Azure Functions tárolási szempontjait.

A függvényalkalmazás helytelenül konfigurált fájlrendszere vagy tárfiókja befolyásolhatja a függvények teljesítményét és rendelkezésre állását. A helytelenül konfigurált tárfiókok hibaelhárításával kapcsolatos segítségért tekintse meg a tárolási hibaelhárítási cikket.

Tárolási kapcsolat beállításai

A dinamikusan skálázható függvényalkalmazások futtathatók a tárfiók egyik Azure Files-végpontjáról vagy a kibővített példányokhoz társított fájlkiszolgálókról. Ezt a viselkedést az alábbi alkalmazásbeállítások vezérlik:

A Prémium csomag és a Fogyasztási csomag a Windows rendszeren támogatja ezeket a beállításokat. A Rugalmas használat csomag nem igényli ezeket a beállításokat, és egy Blob Storage-tárolót használ üzembehelyezési csomagok üzemeltetésére az Azure Files-megosztások helyett.

Amikor a függvényalkalmazást az Azure Portalon vagy az Azure CLI vagy az Azure PowerShell használatával hozza létre, szükség esetén ezeket a beállításokat a függvényalkalmazáshoz hozza létre. Amikor azure Resource Manager-sablonból (ARM-sablonból) hozza létre az erőforrásokat, a sablonban is szerepelnie WEBSITE_CONTENTAZUREFILECONNECTIONSTRING kell.

Az első ARM-sablont használó üzembe helyezéskor ne tartalmazza WEBSITE_CONTENTSHAREaz Ön számára létrehozott elemet.

A beállítások helyes konfigurálásához az alábbi ARM-sablon példákat használhatja:

Fontos

Az Azure Files szolgáltatás jelenleg nem támogatja az identitásalapú kapcsolatokat. A Rugalmas használat csomag teljes mértékben támogatja a felügyelt identitásokat. További információ: Alkalmazás létrehozása Azure Files nélkül.

Tárfiók konfigurálása

Ha függvényalkalmazást hoz létre, létre kell hoznia egy általános célú Azure Storage-fiókot, amely támogatja a blobok, az üzenetsorok és a táblák tárolását, vagy hivatkoznia kell egy ilyen Storage-fiókra. A Functions az Azure Storage-ra támaszkodik az olyan műveletekhez, mint az eseményindítók kezelése és a naplózási függvények végrehajtása. A függvényalkalmazáshoz kapcsolati sztring tárfiók az és AzureWebJobsStorage az WEBSITE_CONTENTAZUREFILECONNECTIONSTRING alkalmazás beállításai között található.

A tárfiók létrehozásakor vegye figyelembe az alábbi szempontokat:

  • A késés csökkentése érdekében hozza létre a tárfiókot a függvényalkalmazással azonos régióban.

  • Az éles teljesítmény javítása érdekében minden függvényalkalmazáshoz használjon külön tárfiókot. Ez a szempont különösen igaz a Durable Functions és az Event Hubs által aktivált függvényekre.

  • Az Event Hubs által aktivált függvények esetében ne használjon olyan fiókot, amelyen engedélyezve van a Data Lake Storage.

Nagyméretű adathalmazok kezelése

Linux rendszeren való futtatáskor egy fájlmegosztás csatlakoztatásával további tárterületet adhat hozzá. A megosztások csatlakoztatása kényelmes módja annak, hogy egy függvény feldolgozzon egy nagy méretű meglévő adathalmazt. További információ: Fájlmegosztások csatlakoztatása.

A függvények rendszerezése

A megoldás részeként valószínűleg több függvényt fejleszt és tesz közzé. Ezek a függvények gyakran egyetlen függvényalkalmazásba vannak kombinálva, de külön függvényalkalmazásokban is futtathatók. A Prémium és dedikált (App Service) üzemeltetési csomagokban több függvényalkalmazás is megoszthatja ugyanazokat az erőforrásokat, ha ugyanabban a csomagban fut. A függvények és függvényalkalmazások csoportosítása befolyásolhatja a teljes megoldás teljesítményét, skálázását, konfigurációját, üzembe helyezését és biztonságát.

A Használat és a Prémium csomag esetében a függvényalkalmazások összes függvénye dinamikusan skálázva van.

A függvények rendszerezéséről további információt a függvényszervezés ajánlott eljárásaiban talál.

Üzemelő példányok optimalizálása

Függvényalkalmazás üzembe helyezésekor ne feledje, hogy az Azure-beli függvények üzembe helyezésének egysége a függvényalkalmazás. Az összes függvényt egyszerre, általában ugyanabból az üzembe helyezési csomagból helyezheti üzembe egy függvényalkalmazásban.

A sikeres üzembe helyezéshez vegye figyelembe az alábbi lehetőségeket:

  • Futtassa a függvényeket az üzembehelyezési csomagból. Ez a csomag-megközelítésből való futtatás a következő előnyöket nyújtja:

    • Csökkenti a fájlmásolási zárolási problémák kockázatát.
    • Közvetlenül üzembe helyezhető éles alkalmazásokban, és nem indítja el az újraindítást.
    • A csomagban lévő összes fájl elérhető az alkalmazás számára.
    • Javítja az ARM-sablontelepítések teljesítményét.
    • Csökkentheti a hidegindítási időket, különösen nagy npm-csomagfákkal rendelkező JavaScript-függvények esetében.
  • Fontolja meg a folyamatos üzembe helyezés használatát az üzemelő példányok forrásvezérlő megoldáshoz való csatlakoztatásához. A folyamatos üzembe helyezésekkel az üzembe helyezési csomagból is futtatható.

  • Prémium csomag üzemeltetése esetén érdemes lehet bemelegítési eseményindítót hozzáadni az új példányok hozzáadásakor fellépő késés csökkentése érdekében. További információkért lásd az Azure Functions bemelegítési eseményindítóját.

  • Az üzembe helyezési állásidő minimalizálása érdekében használjon üzembehelyezési pontokat a Használat, a Prémium és a Dedikált csomagokhoz. Vagy konfigurálja a gördülő frissítéseket a zéró állásidővel történő bevezetéseihez a Rugalmas Fogyasztás csomagban. További információ: Azure Functions üzembehelyezési pontok és helyfrissítési stratégiák a Flex Consumptionben.

Robusztus függvények írása

Kövesse azokat a tervezési alapelveket, amelyek segítenek a függvények általános teljesítményének és rendelkezésre állásának javításában. Ezek az alapelvek a következők:

A felhőalapú számítástechnikában gyakran előfordulnak átmeneti hibák, ezért használjon újrapróbálkozási mintát a felhőalapú erőforrások elérésekor. Számos eseményindító és kötés már implementálja az újrapróbálkozási elemet.

Rangsorolja az integrációs tesztelést úgy, hogy folyamatosan teszteli a függvényeket a teljes alkalmazás kontextusában és a buildautomatizálási folyamatokban.

Biztonságot szem előtt tartó tervezés

A tervezés során vegye figyelembe a biztonságot, és ne a függvények elkészülte után. További információ: Az Azure Functions biztonságossá tétele.

Fontolja meg az egyidejűséget

Mivel az igény a függvényalkalmazásra növekszik a bejövő események miatt, a Fogyasztói és a Prémium csomagok méretezik a függvényalkalmazásokat. Fontos tisztában lenni azzal, hogy a függvényalkalmazás hogyan reagál a terhelésre, és hogyan konfigurálhatók az eseményindítók a bejövő események kezelésére. Általános áttekintésért tekintse meg az Eseményvezérelt skálázást az Azure Functionsben.

A dedikált (App Service-) csomagok megkövetelik, hogy skálázást biztosítson a függvényalkalmazásokhoz.

Feldolgozói folyamatok száma

Bizonyos esetekben hatékonyabb a terhelés kezelése, ha több folyamatot, úgynevezett nyelvi feldolgozó folyamatot hoz létre a példányban a vertikális felskálázás előtt. A FUNCTIONS_WORKER_PROCESS_COUNT beállítás szabályozza az engedélyezett nyelvi feldolgozói folyamatok maximális számát. Ennek a beállításnak az 1alapértelmezett értéke, ami azt jelenti, hogy a rendszer nem használ több folyamatot. Miután elérte a folyamatok maximális számát, a függvényalkalmazás több példányra skálázható a terhelés kezeléséhez. Ez a beállítás nem vonatkozik a gazdafolyamatban futó C# osztálytárfüggvényekre.

Ha Prémium vagy Dedikált (App Service) csomagban használja a FUNCTIONS_WORKER_PROCESS_COUNT, vegye figyelembe a csomag által biztosított magok számát. A Prémium csomag EP2 például két magot biztosít, ezért szükség szerint kettővel 2 kell kezdenie, és a maximális értékre kell növelnie.

Triggerkonfiguráció

Az átviteli sebesség és a skálázás tervezésekor ismerje meg, hogy a különböző típusú eseményindítók hogyan dolgozzák fel az eseményeket. Egyes eseményindítók segítségével szabályozhatja a kötegelési viselkedést és az egyidejűséget. Ezeknek az értékeknek a módosítása segíthet az egyes példányok skálázásában a meghívott függvények igényeinek megfelelően. Ezeket a konfigurációs beállításokat egy függvényalkalmazás összes eseményindítójában alkalmazhatja, és azokat az alkalmazás host.json fájljában tarthatja fenn. A beállítások részleteiért tekintse meg az adott eseményindító-referencia Konfiguráció szakaszát.

Ha többet szeretne megtudni arról, hogy a Functions hogyan dolgozza fel az üzenetstreameket, tekintse meg az Azure Functions megbízható eseményfeldolgozását.

Kapcsolatok tervezése

A kapcsolati korlátok a Használat csomagban futó függvényalkalmazásokra vonatkoznak. Ezek a korlátozások minden példányra vonatkoznak. Ezen korlátok miatt és általános ajánlott eljárásként optimalizálja a kimenő kapcsolatokat a függvénykódból. További információ: Kapcsolatok kezelése az Azure Functionsben.

Nyelvspecifikus szempontok

A választott nyelvhez tartsa szem előtt a következő szempontokat:

A rendelkezésre állás maximalizálása

A hidegindítás kulcsfontosságú szempont a kiszolgáló nélküli architektúrák esetében. További információ: Hidegindítások. Ha a hidegindítás problémát jelent a forgatókönyvhöz, olvassa el a kiszolgáló nélküli hidegindítás ismertetése című témakört.

A Rugalmas fogyasztás és a Prémium csomagok egyaránt ajánlottak a hidegindítások csökkentésére, miközben a dinamikus skálázhatóság fenntartása biztosított. Az alábbi útmutató segítségével csökkentheti a hidegindításokat, és javíthatja a rendelkezésre állást az összes üzemeltetési csomagban.

Csomag Útmutató
Rugalmas kihasználtságú csomag Mindig kész példányok használata a példányok futásának fenntartásához
Mindig készen álló példányszámok beállítása
Prémium csomag Bemelegítési eseményindító implementálása a függvényalkalmazásban
Az Always-Ready példányok és a maximális kipukkadási korlát értékeinek beállítása
Virtuális hálózati eseményindító-támogatás használata nem HTTP-eseményindítók virtuális hálózaton való használatakor
Dedikált tervek Futtasson legalább két példányon, ha engedélyezve van Azure-alkalmazás szolgáltatásállapot-ellenőrzés
Automatikus skálázás implementálása
Használati terv • Tekintse át a Singleton-minták használatát, valamint a kötések és triggerek egyidejűségi beállításait, hogy elkerülje a függvényalkalmazás méretezési korlátainak mesterséges elhelyezését.
Tekintse át a beállítást, amely korlátozhatja a functionAppScaleLimit vertikális felskálázást
• A napi használati kvóta (GB-s) korlátjának ellenőrzése a fejlesztés és tesztelés során. Érdemes lehet eltávolítani ezt a korlátot éles környezetekben.

Hatékonyan monitorozás

Az Azure Functions beépített integrációt kínál a Azure-alkalmazás Insights szolgáltatással a függvény végrehajtásának és a kódból írt nyomkövetések figyeléséhez. További információ: Végrehajtások monitorozása az Azure Functionsben. Az Azure Monitor emellett a függvényalkalmazás állapotának monitorozására is alkalmas. További információ: Az Azure Functions monitorozása.

Vegye figyelembe a következő szempontokat, amikor az Application Insights-integrációt használja a függvények monitorozásához:

  • Távolítsa el az AzureWebJobsDashboard alkalmazásbeállítást. Ezt a beállítást a Functions régebbi verziói támogatták. AzureWebJobsDashboard eltávolítása javítja a függvények teljesítményét.

  • Tekintse át az Application Insights naplóit. Ha a várhatóan hiányzó adatok hiányoznak, fontolja meg a mintavételezési beállítások módosítását a monitorozási forgatókönyv jobb rögzítése érdekében. excludedTypes A beállítással kizárhat bizonyos típusokat a mintavételezésből, például Request vagy Exception. További információért lásd a mintavételezés konfigurálásával foglalkozó részt.

Az Azure Functions lehetővé teszi a rendszer által generált és a felhasználó által létrehozott naplók Azure Monitor-naplókba való küldését is. Az Azure Monitor-naplókkal való integráció jelenleg előzetes verzióban érhető el.

Buildelés redundanciában

Előfordulhat, hogy az üzleti igényei megkövetelik, hogy a függvények mindig elérhetők legyenek, még az adatközpontok üzemkimaradása során is. Ha többet szeretne megtudni arról, hogyan használhat többrégiós megközelítést a kritikus függvények folyamatos működéséhez, tekintse meg az Azure Functions megbízhatóságát.

Következő lépések

A függvényalkalmazás kezelése