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 felület, amely kibővíti a meglévő Azure-alkalmazás szolgáltatásalkalmazási platformot az Azure-ban, külső szolgáltatásban és helyszíni rendszerekben bekövetkező események által aktivált kód implementálására szolgáló képességekkel. A Functions lehetővé teszi a megoldások létrehozását adatforrásokhoz vagy üzenetkezelési megoldásokhoz való csatlakozással, ami megkönnyíti az események feldolgozását és az eseményekre való reagálást. 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 fognak történni. 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. Ezek az Azure Functions által biztosított üzemeltetési csomagok:

Fontos

A Rugalmas használat csomag jelenleg előzetes verzióban érhető el.

Az App Service platform kontextusában a függvények dinamikus üzemeltetéséhez használt Prémium csomag az Elastic Premium csomag (EP). Vannak más dedikált (App Service-) csomagok is, amelyeket Prémiumnak hívnak. További információkért tekintse meg a Prémium csomagról szóló cikket.

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 és a példányok lefoglalásának kezelése alapján.
  • 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 című témakörben olvashat bővebben.

A függvényalkalmazás létrehozásakor fontos, hogy a megfelelő tervet válassza. 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ó: Migrálás megtervezve.

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 tárfiók-kapcsolatot a Functions-gazdagép 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ókért tekintse meg 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:

Ezek a beállítások csak akkor támogatottak, ha Prémium csomagban vagy Használati csomagban fut Windows rendszeren.

Amikor a függvényalkalmazást az Azure Portalon vagy az Azure CLI vagy az Azure PowerShell használatával hozza létre, ezek a beállítások szükség esetén létrejönnek a függvényalkalmazáshoz. 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:

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 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING az AzureWebJobsStorage 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 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

A függvényalkalmazások üzembe helyezésekor fontos szem előtt tartani, hogy az Azure-beli függvények üzembe helyezésének egysége a függvényalkalmazás. A függvényalkalmazások összes függvénye egyszerre van üzembe helyezve, általában ugyanabból az üzembe helyezési csomagból.

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, amelyek újraindítást váltanak ki.
    • Tudja, hogy a csomag összes fájlja 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 tekintse meg az Azure Functions bemelegítési eseményindítóját.

  • Az üzembe helyezési állásidő minimalizálása és az üzemelő példányok visszaállítása érdekében fontolja meg az üzembehelyezési pontok használatát. További információkért tekintse meg az Azure Functions üzembehelyezési pontjait.

Robusztus függvények írása

A függvénykód írásakor számos tervezési alapelvet követhet, amelyek segítenek a függvények általános teljesítményében és rendelkezésre állásában. Ezek az alapelvek a következők:

Mivel az átmeneti hibák gyakoriak a felhőalapú számítástechnikában, újrapróbálkozási mintát kell használnia 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.

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

A biztonságot a tervezési fázisban érdemes figyelembe venni, és nem azt követően, hogy a függvények készen állnak a használatra. A függvények biztonságos fejlesztésének és üzembe helyezésének megismeréséhez tekintse meg az Azure Functions biztonságossá tételét ismertető témakört.

Fontolja meg az egyidejűséget

Mivel az igény a függvényalkalmazásra a bejövő események eredményeként épül fel, a Használat és Prémium csomagokban futó függvényalkalmazások felskálázódnak. 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 a függvényalkalmazások horizontális felskálázását.

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. Az engedélyezett nyelvi feldolgozói folyamatok maximális számát a FUNCTIONS_WORKER_PROCESS_COUNT beállítás szabályozza. 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 lesz skálázva a terhelés kezeléséhez. Ez a beállítás nem vonatkozik a gazdafolyamatban futó C# osztálytárfüggvényekre.

Prémium vagy Dedikált (App Service) csomag esetén 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 fontos tisztában lenni azzal, hogy a különböző típusú eseményindítók hogyan dolgozzák fel az eseményeket. Egyes eseményindítók lehetővé teszik a kötegelési viselkedés szabályozását és az egyidejűség kezelését. A beállítások értékeinek módosítása gyakran 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 a függvényalkalmazás összes eseményindítója alkalmazza, és az alkalmazás host.json fájljában is megmaradnak. 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 Használati tervben futó függvényalkalmazásokra kapcsolati korlátok vonatkoznak. Ezeket a korlátokat példányonként kell kikényszeríteni. Ezen korlátok miatt és általános ajánlott eljárásként optimalizálnia kell 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ás. Ha a hidegindítás aggodalomra ad okot a forgatókönyvben, részletesebben is megismerkedhet a kiszolgáló nélküli hidegindításról szóló bejegyzésben.

A prémium csomag a dinamikus skálázás fenntartása mellett javasolt a megfázások csökkentésére. Az alábbi útmutató segítségével csökkentheti a hidegindításokat, és mindhárom üzemeltetési csomagban javíthatja a rendelkezésre állást.

Felkészülés Útmutató
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ó: Az Azure Functions monitorozása. Az Azure Monitor emellett a függvényalkalmazás állapotának monitorozására is alkalmas. További információ: Monitorozás az Azure Monitorral.

A függvények monitorozásához az Application Insights-integráció használatakor a következő szempontokat kell figyelembe vennie:

  • Győződjön meg arról, hogy az AzureWebJobsDashboard alkalmazásbeállítás el lett távolítva. Ezt a beállítást a Functions régebbi verziói támogatták. Ha létezik, az eltávolítás AzureWebJobsDashboard 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. A beállítással excludedTypes kizárhat bizonyos típusokat a mintavételezésből, példáulRequest.Exception További információ: Mintavételezés konfigurálása.

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 geo-vészhelyreállítását és magas rendelkezésre állását.

Következő lépések

A függvényalkalmazás kezelése