Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
- Használati terv
- Dedikált terv
- Prémium csomag VNET-integrációval
- Használati terv üzembehelyezési ponttal
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:
- Kerülje a hosszú ideig futó függvényeket
- Függvények közötti kommunikáció tervezése
- Írd meg a függvényeket állapot nélkül
- Védekező függvények írása
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:
Használjon aszinkron kódot, de kerülje a hívások blokkolását.
Használjon lemondási jogkivonatokat (csak folyamatban).
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.
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.
AzureWebJobsDashboardeltá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.
excludedTypesA beállítással kizárhat bizonyos típusokat a mintavételezésből, példáulRequestvagyException. 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.