Az Azure Functions üzemeltetési lehetőségei
Amikor függvényalkalmazást hoz létre az Azure-ban, ki kell választania egy üzemeltetési lehetőséget az alkalmazáshoz. Az Azure az alábbi üzemeltetési lehetőségeket biztosítja a függvénykódhoz:
Üzemeltetési lehetőség | Szolgáltatás | Elérhetőség | Tárolótámogatás |
---|---|---|---|
Használati terv | Azure Functions | Általánosan elérhető (GA) | Egyik sem |
Rugalmas kihasználtságú csomag | Azure Functions | Előnézet | Egyik sem |
Prémium csomag | Azure Functions | FE | Linux |
Dedikált terv | Azure Functions | FE | Linux |
Container Apps | Azure Container-alkalmazások | FE | Linux |
Az Azure Functions üzemeltetési lehetőségeit Azure-alkalmazás Szolgáltatásinfrastruktúra linuxos és Windows rendszerű virtuális gépeken is megkönnyíti. A választott üzemeltetési beállítás a következő viselkedést diktálja:
- A függvényalkalmazás méretezésének menete.
- 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.
- Linux-tárolók támogatása.
A választott terv hatással van a függvénykód futtatásának költségeire is. További információ: Számlázás.
Ez a cikk részletes összehasonlítást nyújt a különböző üzemeltetési lehetőségek között. A függvénykód Linux-tárolókban való futtatásával és kezelésével kapcsolatos további információkért lásd : Linux-tárolók támogatása az Azure Functionsben.
A tervek áttekintése
Az alábbiakban összefoglaljuk az Azure Functions-üzemeltetés különböző lehetőségeinek előnyeit:
Lehetőség | Előnyök |
---|---|
Használati terv | A számítási erőforrásokért csak akkor kell fizetnie, ha a függvények automatikus skálázással futnak (használatalapú fizetés). A használatalapú csomagoknál a rendszer dinamikusan, a bejövő események száma alapján adja hozzá és távolítja el a Functions üzemeltetett példányait. ✔ Alapértelmezett üzemeltetési csomag, amely valódi kiszolgáló nélküli üzemeltetést biztosít. ✔ Csak akkor kell fizetnie, ha a függvények futnak. ✔ Automatikusan skáláz, még nagy terhelés esetén is. |
Rugalmas kihasználtságú csomag | A számítási lehetőségek, a virtuális hálózatkezelés és a használatalapú fizetéses számlázás nagy méretezhetőséget biztosít. A Rugalmas használat csomagban a Függvény gazdagép példányai dinamikusan hozzáadódnak és eltávolíthatók a példányonként konfigurált egyidejűség és a bejövő események száma alapján. ✔ A hideget számos előre kiosztott (mindig készen álló) példány megadásával csökkentheti. ✔ Támogatja a virtuális hálózatkezelést a hozzáadott biztonság érdekében. ✔ Fizetés a függvények futtatásakor. ✔ Automatikusan skáláz, még nagy terhelés esetén is. |
Prémium csomag | Automatikus skálázás igény szerint előre előkészített feldolgozók használatával, amelyek tétlenség után késedelem nélkül futtatják az alkalmazásokat, hatékonyabb példányokon futnak, és virtuális hálózatokhoz csatlakoznak. Vegye figyelembe az Azure Functions Premium-csomagot a következő helyzetekben: ✔ A függvényalkalmazások folyamatosan vagy szinte folyamatosan futnak. ✔ Szeretné jobban szabályozni a példányokat, és több függvényalkalmazást szeretne üzembe helyezni ugyanazon a terven eseményvezérelt skálázással. ✔ Nagy számú kis végrehajtással és magas végrehajtási számlával rendelkezik, de a használatalapú csomagban alacsony GB másodperc. ✔ Több processzor- vagy memórialehetőségre van szüksége, mint amennyit a használati tervek biztosítanak. ✔ A kódnak hosszabb ideig kell futnia, mint a használati tervben megengedett maximális végrehajtási idő. ✔ Virtuális hálózati kapcsolatra van szükség. ✔ Egyéni Linux-rendszerképet szeretne megadni, amelyben futtathatja a függvényeket. |
Dedikált terv | Futtassa a függvényeket egy App Service-csomagon belül, normál App Service-csomagdíjakkal. Olyan hosszú ideig futó forgatókönyvekhez ideális, ahol a Durable Functions nem használható. Az alábbi helyzetekben érdemes megfontolni egy App Service-csomagot: ✔ Meglévő és kihasználatlan virtuális gépekkel rendelkezik, amelyek már más App Service-példányokat is futtatnak. ✔ Teljes mértékben kiszámítható számlázással kell rendelkeznie, vagy manuálisan kell méreteznie a példányokat. ✔ Több webalkalmazást és függvényalkalmazást szeretne futtatni ugyanazon a csomagon ✔ Nagyobb számítási méretre van szüksége. ✔ Az App Service Environment (ASE) által biztosított teljes számítási elkülönítés és biztonságos hálózati hozzáférés. ✔ Nagyon magas memóriahasználat és nagy léptékű (ASE). |
Container Apps | Tárolóalapú függvényalkalmazások létrehozása és üzembe helyezése az Azure Container Apps által üzemeltetett teljes körűen felügyelt környezetben. Az Azure Functions programozási modell használatával eseményvezérelt, kiszolgáló nélküli, natív felhőbeli függvényalkalmazásokat hozhat létre. A függvényeket más mikroszolgáltatások, API-k, webhelyek és munkafolyamatok mellett futtathatja tárolóalapú programokként. A következő helyzetekben érdemes lehet üzemeltetni a függvényeket a Container Appsben: ✔ Egyéni kódtárakat szeretne csomagolni a függvénykóddal az üzletági alkalmazások támogatásához. ✔ A kódvégrehajtást a helyszíni vagy örökölt alkalmazásokból a tárolókban futó natív felhőbeli mikroszolgáltatásokba kell migrálnia. ✔ Ha el szeretné kerülni a Kubernetes-fürtök és a dedikált számítás kezelésének többletterhelését és összetettségét. ✔ A funkciókhoz a dedikált GPU-számítási erőforrások által biztosított magas szintű feldolgozási teljesítményre van szükség. |
A cikkben szereplő többi táblázat különböző funkciók és viselkedések alapján hasonlítja össze az üzemeltetési lehetőségeket.
Operációs rendszerek támogatása
Ez a táblázat az operációs rendszer üzemeltetési beállításainak támogatását mutatja be.
Üzemeltetés | Linux1 üzembe helyezése | Windows2 központi telepítése |
---|---|---|
Használati terv | ✅ Csak kóddal ❌ Tároló (nem támogatott) |
✅ Csak kóddal |
Rugalmas kihasználtságú csomag | ✅ Csak kóddal ❌ Tároló (nem támogatott) |
❌ Nem támogatott |
Prémium csomag | ✅ Csak kóddal ✅ Konténer |
✅ Csak kóddal |
Dedikált terv | ✅ Csak kóddal ✅ Konténer |
✅ Csak kóddal |
Container Apps | ✅ Csak tároló | ❌ Nem támogatott |
- A Python futtatókörnyezeti verem egyetlen támogatott operációs rendszere a Linux.
- A Windows-környezetek csak kóddal használhatók. A Functions jelenleg nem támogatja a Windows-tárolókat.
A függvényalkalmazás időtúllépési időtartama
A függvényalkalmazások függvényeinek időtúllépési időtartamát a functionTimeout
host.json projektfájl tulajdonsága határozza meg. Ez a tulajdonság kifejezetten a függvényvégrehajtásokra vonatkozik. Miután az eseményindító megkezdte a függvény végrehajtását, a függvénynek az időtúllépési időtartamon belül vissza kell térnie/válaszolnia. Az időtúllépések elkerülése érdekében fontos robusztus függvényeket írni. További információ: Az Azure Functions teljesítményének és megbízhatóságának javítása.
Az alábbi táblázat az adott csomagok alapértelmezett és maximális értékeit (percekben) mutatja be:
Csomag | Alapértelmezett | Maximum1 |
---|---|---|
Használati terv | 5 | 10 |
Rugalmas kihasználtságú csomag | 30 | Kötetlen2 |
Prémium csomag | 304 | Kötetlen2 |
Dedikált terv | 304 | Kötetlen3 |
Container Apps | 30 | Kötetlen4 |
- A függvényalkalmazás időtúllépési beállításától függetlenül 230 másodperc a maximális idő, amely alatt egy HTTP által aktivált függvény válaszolhat egy kérésre. Ennek oka az Azure Load Balancer alapértelmezett tétlenségi időtúllépése. Hosszabb feldolgozási idő esetén fontolja meg a Durable Functions aszinkron mintájának használatát, vagy halasztsa el a tényleges munkát, és azonnali választ adjon vissza.
- Nincs maximális végrehajtási időtúllépési időtartam kényszerítve. A függvények végrehajtásának türelmi ideje azonban 60 perc a Rugalmas használat és a Prémium csomagok skálázása során, a platformfrissítések során pedig 10 perces türelmi idő.
- Az App Service-csomag always on értékre van állítva. A platformfrissítések során a türelmi idő 10 perc.
- A Functions-gazdagép futtatókörnyezetének 1.x verziójának alapértelmezett időtúllépése kötetlen.
- Ha a replikák minimális száma nullára van állítva, az alapértelmezett időtúllépés az alkalmazásban használt eseményindítóktól függ.
Nyelvi támogatás
A Függvények jelenlegi natív nyelvi veremtámogatásával kapcsolatos részletekért lásd : Támogatott nyelvek az Azure Functionsben.
Hangsor
Az alábbi táblázat a különböző üzemeltetési tervek skálázási viselkedését hasonlítja össze.
A példányok maximális száma függvényalapú alkalmazásonként (használat) vagy csomagonként (prémium/dedikált) történik, kivéve, ha másként van feltüntetve.
Csomag | Horizontális felskálázás | Maximális # példányok |
---|---|---|
Használati terv | Eseményvezérelt. Automatikusan felskálázódik, még nagy terhelés esetén is. A Functions-infrastruktúra úgy skálázza a processzor- és memóriaerőforrásokat, hogy további példányokat ad hozzá a Functions-gazdagéphez a bejövő eseményindító események száma alapján. | Windows: 200 Linux: 1001 |
Rugalmas kihasználtságú csomag | Függvényenkénti skálázás. Az eseményvezérelt skálázási döntéseket függvényenkénti alapon számítjuk ki, amely determinisztikusabb módot biztosít a függvények skálázására az alkalmazásban. A HTTP, a Blob Storage (Event Grid) és a Durable Functions kivételével az alkalmazás minden más függvény-triggertípusa független példányokon skálázható. Az alkalmazás összes HTTP-eseményindítója csoportként skálázható ugyanazon példányokon, ahogy az összes Blob Storage-eseményindító (Event Grid). Minden Durable Functions-eseményindító megosztja a példányokat, és együtt méretezhető. | Csak az adott régió összes példányának teljes memóriahasználata korlátozza. További információ: Példánymemória. |
Prémium csomag | Eseményvezérelt. Vertikális felskálázás automatikusan, még nagy terhelés esetén is. Az Azure Functions-infrastruktúra skálázza a processzor- és memóriaerőforrásokat a Functions-gazdagép további példányainak hozzáadásával a függvények által aktivált események száma alapján. | Windows: 100 Linux: 20-1002 |
Dedikált terv3 | Manuális/automatikus skálázás | 10-30 100 (ASE) |
Container Apps | Eseményvezérelt. Vertikális felskálázás automatikusan, még nagy terhelés esetén is. Az Azure Functions-infrastruktúra skálázza a processzor- és memóriaerőforrásokat a Functions-gazdagép további példányainak hozzáadásával a függvények által aktivált események száma alapján. | 300-10004 |
- A vertikális felskálázás során előfizetésenként jelenleg óránként 500 példányra van korlátozva a használatalapú csomagban futó Linux-alkalmazások esetében.
- Egyes régiókban a Prémium csomagban futó Linux-alkalmazások 100 példányra méretezhetők. További információkért tekintse meg a Prémium csomagról szóló cikket.
- A különböző App Service-csomagbeállításokra vonatkozó konkrét korlátokért tekintse meg az App Service-csomag korlátait.
- A Container Appsben az alapértelmezett érték 10 példány, de beállíthatja a replikák maximális számát, amelynek összértéke 1000. Ezt a beállítást mindaddig tiszteletben tartjuk, amíg elegendő magkvóta áll rendelkezésre. Amikor az Azure Portalról hozza létre a függvényalkalmazást, legfeljebb 300 példányt használhat.
Hidegindítási viselkedés
Csomag | Részletek |
---|---|
Használati terv | Az alkalmazások tétlen állapotban nullára skálázhatók, ami azt jelenti, hogy egyes kérések indításkor nagyobb késéssel járhatnak. A használati terv rendelkezik néhány optimalizálással a hideg kezdési idő csökkentéséhez, beleértve az előre elkészített helyőrző függvényekből való lekérést is, amelyeken már futnak a gazdagépek és a nyelvi folyamatok. |
Rugalmas kihasználtságú csomag | Támogatja a mindig kész példányokat , hogy csökkentse az új példányok üzembe helyezésekor tapasztalható késést. |
Prémium csomag | Támogatja a mindig kész példányokat , hogy elkerülje a hidegindítást azáltal, hogy egy vagy több állandó meleg példányt tart fenn. |
Dedikált terv | Dedikált csomagban való futtatáskor a Functions-gazdagép folyamatosan futhat az előírt számú példányon, ami azt jelenti, hogy a hidegindítás nem igazán jelent problémát. |
Container Apps | A replikák minimális számától függ: • Ha nullára van állítva: az alkalmazások tétlen állapotban nullára méretezhetők, és egyes kérések indításkor nagyobb késéssel járhatnak. • Ha egy vagy többre van állítva: a gazdafolyamat folyamatosan fut, ami azt jelenti, hogy a hidegindítás nem jelent problémát. |
Szolgáltatáskorlátok
Erőforrás | Használati terv | Rugalmas felhasználású csomag13 | Prémium csomag | Dedikált ase-terv/ | Container Apps |
---|---|---|---|---|---|
Alapértelmezett időtúllépés időtartama (perc) | 5 | 30 | 30 | 301 | 3016 |
Maximális időtúllépési időtartam (perc) | 10 | kötetlen8 | kötetlen8 | kötetlen2 | kötetlen17 |
Kimenő kapcsolatok maximális száma (példányonként) | 600 aktív (összesen 1200) | Korlátos | Korlátos | Korlátos | Korlátos |
Kérelem maximális mérete (MB)3 | 100 | 100 | 100 | 100 | 100 |
Lekérdezési sztring maximális hossza3 | 4096 | 4096 | 4096 | 4096 | 4096 |
Kérelem URL-címének maximális hossza3 | 8192 | 8192 | 8192 | 8192 | 8192 |
ACU példányonként | 100 | Változik | 210-840 | 100-840/210-2509 | Változik |
Maximális memória (GB példányonként) | 1,5 | 414 | 3.5-14 | 1.75-14/3.5-14 | Változik |
Példányok maximális száma (Windows/Linux) | 200/100 | 1000 15 | 100/20 | termékváltozat/10010 szerint változik | 10-30018 |
Függvényalkalmazások csomagonként12 | 100 | 100 | 100 | kötetlen4 | kötetlen4 |
App Service-csomagok | Régiónként 100 | n.a. | Erőforráscsoportonként 100 | Erőforráscsoportonként 100 | n.a. |
Üzembehelyezési pontok alkalmazásonként11 | 2 | n.a. | 3 | 1-2010 | nem támogatott |
Tárolás (ideiglenes)5 | 0,5 GB | 0,8 GB | 21–140 GB | 11–140 GB | n.a. |
Tárolás (megtartva) | 1 GB6 | 0 GB6 | 250 GB | 10-1000 GB10 | n.a. |
Egyéni tartományok alkalmazásonként | 5007 | 500 | 500 | 500 | nem támogatott |
Egyéni tartomány SSL-támogatása | nem kötött SNI SSL-kapcsolat is szerepel a csomagban | kötetlen SNI SSL és 1 IP SSL-kapcsolat is szerepel a csomagban | kötetlen SNI SSL és 1 IP SSL-kapcsolat is szerepel a csomagban | kötetlen SNI SSL és 1 IP SSL-kapcsolat is szerepel a csomagban | nem támogatott |
Megjegyzések a szolgáltatási korlátokról:
- Alapértelmezés szerint egy App Service-csomag Functions 1.x futtatókörnyezetének időtúllépése kötetlen.
- Az App Service-csomag always on értékre van állítva. Fizetés standard díjszabás szerint. A platformfrissítések során a türelmi idő 10 perc.
- Ezek a korlátok a gazdagépen vannak beállítva.
- A üzemeltethető függvényalkalmazások tényleges száma az alkalmazások tevékenységétől, a géppéldányok méretétől és a megfelelő erőforrás-kihasználtságtól függ.
- A tárterületkorlát az ideiglenes tárterület teljes tartalommérete az ugyanabban az App Service-csomagban lévő összes alkalmazásra vonatkozóan. A Linux-alapú használati csomagok esetében a tárterület jelenleg 1,5 GB.
- A használati terv egy Azure Files-megosztást használ a tartós tároláshoz. Ha saját Azure Files-megosztást ad meg, az adott megosztás méretkorlátja a WEBSITE_CONTENTAZUREFILECONNECTIONSTRING beállított tárfióktól függ. Linuxon kifejezetten csatlakoztatnia kell saját Azure Files-megosztást a Flex Consumption és a Consumption csomagokhoz is.
- Ha a függvényalkalmazást használatalapú csomagban üzemelteti, csak a CNAME beállítás támogatott. Prémium csomagban vagy App Service-csomagban lévő függvényalkalmazások esetén egy egyéni tartományt CNAME vagy A rekord használatával képezhet le.
- Nincs maximális végrehajtási időtúllépési időtartam kényszerítve. A függvény végrehajtásának türelmi ideje azonban 60 perc a skálázás során és 10 perc a platformfrissítések során.
- A feldolgozók az ügyfélalkalmazások üzemeltetéséért felelős szerepkörök. A feldolgozók három rögzített méretben érhetők el: egy vCPU/3,5 GB RAM; Két vCPU/7 GB RAM; Négy vCPU/14 GB RAM.
- Részletekért tekintse meg az App Service korlátait .
- Beleértve az éles pontot is.
- Egy adott előfizetésben jelenleg 5000 függvényalkalmazás van korlátozva.
- A Rugalmas használat csomag jelenleg előzetes verzióban érhető el.
- A Rugalmas kihasználtságú csomag példányainak mérete jelenleg 2 048 MB vagy 4096 MB. További információ: Példánymemória.
- A rugalmas használatú csomag előzetes verzióban regionális előfizetési kvótával rendelkezik, amely korlátozza az adott régió összes példányának teljes memóriahasználatát. További információ: Példánymemória.
- Ha a replikák minimális száma nullára van állítva, az alapértelmezett időtúllépés az alkalmazásban használt eseményindítóktól függ.
- Ha a replikák minimális száma egy vagy többre van állítva.
- A Container Appsben beállíthatja a replikák maximális számát, amely akkor érvényes, ha elegendő magkvóta áll rendelkezésre.
Hálózatkezelési funkciók
Szolgáltatás | Használati terv | Rugalmas kihasználtságú csomag | Prémium csomag | Dedikált ase-terv/ | Container Apps* |
---|---|---|---|---|---|
Bejövő IP-korlátozások | ✅Igen | ✅Igen | ✅Igen | ✅Igen | ✅Igen |
Bejövő privát végpontok | ❌Nem | ✅Igen | ✅Igen | ✅Igen | ❌Nem |
Virtuális hálózat integrációja | ❌Nem | ✅Igen (regionális) | ✅Igen (regionális) | ✅Igen (regionális és átjáró) | ✅Igen |
Virtuális hálózati eseményindítók (nem HTTP) | ❌Nem | ✅Igen | ✅Igen | ✅Igen | ✅Igen |
Hibrid kapcsolatok (csak Windows esetén) | ❌Nem | ❌ Nem | ✅Igen | ✅Igen | ❌Nem |
Kimenő IP-korlátozások | ❌Nem | ✅Igen | ✅Igen | ✅Igen | ✅Igen |
*További információ: Hálózatkezelés az Azure Container Apps-környezetben.
Számlázás
Csomag | Részletek |
---|---|
Használati terv | Csak a függvények futtatásának idejéért kell fizetnie. A számlázás a végrehajtások száma, a végrehajtási idő és a felhasznált memória alapján történik. |
Rugalmas kihasználtságú csomag | A számlázás a végrehajtások számán, a példányok aktívan végrehajtott függvények memóriáján, valamint a mindig kész példányok költségein alapul. További információ: Rugalmas használatú csomag számlázása. |
Prémium csomag | A prémium csomag a szükséges és előre elkészített példányokon felhasznált mag másodpercek és memória számán alapul. Tervenként legalább egy példányt mindig melegen kell tartani. Ez a csomag a legrejelhetőbb díjszabást biztosítja. |
Dedikált terv | Az App Service-csomagban lévő függvényalkalmazásokért ugyanúgy kell fizetnie, mint más App Service-erőforrásokért, például webalkalmazásokért. Az ASE esetében van egy havi átalánydíj, amely az infrastruktúráért fizet, és nem változik a környezet méretével. Az App Service-csomag vCPU-jának költsége is van. Egy ASE környezeten belül az összes üzemeltetett alkalmazás az elkülönített díjszabású termékváltozatba tartozik. További információkért tekintse meg az ASE áttekintési cikkét. |
Container Apps | Az Azure Container Apps számlázása a csomag típusán alapul. További információ: Számlázás az Azure Container Appsben. |
A dinamikus üzemeltetési csomagok (Felhasználás, Rugalmas használat és Prémium) közvetlen költség-összehasonlítását az Azure Functions díjszabási oldalán tekintheti meg. A különböző dedikált csomagbeállítások díjszabását az App Service díjszabási oldalán talál. A Container Apps üzemeltetésének díjszabását az Azure Container Apps díjszabásában talál.
Új függvényalkalmazások létrehozásának korlátozásai meglévő erőforráscsoportban
Bizonyos esetekben, amikor új üzemeltetési tervet próbál létrehozni a függvényalkalmazáshoz egy meglévő erőforráscsoportban, az alábbi hibák egyike jelenhet meg:
- A tarifacsomag nem engedélyezett ebben az erőforráscsoportban
- <> SKU_name feldolgozók nem érhetők el az erőforráscsoport <resource_group_name>
Ez a következő feltételek teljesülésekor fordulhat elő:
- Olyan függvényalkalmazást hozhat létre egy meglévő erőforráscsoportban, amely valaha is tartalmazott egy másik függvényalkalmazást vagy webalkalmazást. A Linux-használatú alkalmazások például nem támogatottak ugyanabban az erőforráscsoportban, mint a Linux Dedikált vagy a Linux Premium-csomagok.
- Az új függvényalkalmazás ugyanabban a régióban jön létre, mint az előző alkalmazás.
- Az előző alkalmazás valamilyen módon nem kompatibilis az új alkalmazással. Ez a hiba az SKU-k, az operációs rendszerek vagy más platformszintű funkciók, például a rendelkezésre állási zónák támogatása miatt fordulhat elő.
Ennek az az oka, hogy a függvényalkalmazások és a webalkalmazás-csomagok hogyan vannak leképezve különböző erőforráskészletekhez létrehozásukkor. A különböző termékváltozatok eltérő infrastruktúra-képességeket igényelnek. Amikor egy erőforráscsoportban hoz létre alkalmazást, a rendszer leképezi és hozzárendeli azt egy adott erőforráskészlethez. Ha egy másik tervet próbál létrehozni az adott erőforráscsoportban, és a megfeleltetett készlet nem rendelkezik a szükséges erőforrásokkal, ez a hiba történik.
Ha ez a hiba jelentkezik, hozza létre a függvényalkalmazást és az üzemeltetési tervet egy új erőforráscsoportban.