Azure Functions üzemeltetési lehetőségek
Amikor függvényalkalmazást hoz létre az Azure-ban, ki kell választania egy üzemeltetési csomagot az alkalmazáshoz. Három alapszintű üzemeltetési csomag érhető el Azure Functions: Használati csomag, Prémium csomag és Dedikált (App Service) csomag. Az összes üzemeltetési csomag általánosan elérhető linuxos és Windows rendszerű virtuális gépeken is.
A választott üzemeltetési csomag a következő viselkedést diktálja:
- A függvényalkalmazás skálázásának 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 az Azure Virtual Network kapcsolat támogatása.
Ez a cikk részletes összehasonlítást nyújt a különböző üzemeltetési tervek és a Kubernetes-alapú üzemeltetés között.
Megjegyzés
Ha úgy dönt, hogy egy Kubernetes-fürtben üzemelteti a függvényeket, fontolja meg egy Azure Arc-kompatibilis Kubernetes-fürt használatát. Az Azure Arc-kompatibilis Kubernetes-fürtökön való üzemeltetés jelenleg előzetes verzióban érhető el. További információ: App Service, Functions és Logic Apps az Azure Arcon.
A tervek áttekintése
Az alábbiakban összefoglaljuk a Functions három fő üzemeltetési csomagjának előnyeit:
Felkészülés | Előnyök |
---|---|
Használatalapú csomag | Automatikus skálázás, és csak akkor kell fizetnie a számítási erőforrásokért, ha a függvények futnak. A Használati tervben a Függvények gazdagép példányai dinamikusan lesznek hozzáadva és eltávolítva a bejövő események száma alapján. ✔ Alapértelmezett üzemeltetési csomag. ✔ Csak akkor kell fizetnie, ha a függvények futnak. ✔ Automatikusan skáláz, még nagy terhelés esetén is. |
Prémium szintű csomag | Automatikus skálázás igény szerint előre melegített feldolgozók használatával, amelyek tétlenség után késleltetés nélkül futtatják az alkalmazásokat, hatékonyabb példányokon futnak, és virtuális hálózatokhoz csatlakoznak. Vegye figyelembe a Azure Functions Prémium csomagot a következő helyzetekben: ✔ A függvényalkalmazások folyamatosan vagy szinte folyamatosan futnak. ✔ Nagy számú kis végrehajtással és magas végrehajtási számlával rendelkezik, de alacsony GB másodperc a Használat csomagban. ✔ Több processzor- vagy memóriabeállításra van szüksége, mint amit a Használati csomag biztosít. ✔ A kódnak hosszabb ideig kell futnia, mint a használatalapú csomagban engedélyezett maximális végrehajtási idő. ✔ Olyan szolgáltatásokra van szüksége, amelyek nem érhetők el a használati csomagban, például virtuális hálózati kapcsolatra. ✔ Egyéni Linux-rendszerképet szeretne megadni, amelyen futtatni szeretné a függvényeket. |
Dedikált terv | Futtassa a függvényeket egy App Service csomagon belül, normál App Service díjtételekkel. A legjobb olyan hosszú ideig futó forgatókönyvekhez, ahol Durable Functions nem lehet használni. Az alábbi helyzetekben fontolja meg a App Service terveket: ✔ Meglévő, kihasználatlan virtuális gépekkel rendelkezik, amelyek már futtatnak más App Service példányokat. ✔ Prediktív skálázásra és költségekre van szükség. |
A cikkben szereplő összehasonlító táblázatok a következő üzemeltetési lehetőségeket is tartalmazzák, amelyek a függvényalkalmazások futtatásának legnagyobb mértékű vezérlését és elkülönítését biztosítják.
Üzemeltetési lehetőség | Részletek |
---|---|
ASE | A App Service Environment (ASE) egy App Service funkció, amely teljesen elkülönített és dedikált környezetet biztosít a App Service alkalmazások nagy léptékű biztonságos futtatásához. Az ASE-k a következőkhöz szükséges alkalmazás-számítási feladatokhoz használhatók: ✔ Nagyon nagy léptékű. ✔ Teljes számítási elkülönítés és biztonságos hálózati hozzáférés. ✔ Magas memóriahasználat. |
Kubernetes (Közvetlen vagy Azure Arc) |
A Kubernetes egy teljesen elkülönített és dedikált környezetet biztosít, amely a Kubernetes platform tetején fut. A Kubernetes az alábbi alkalmazásterhelésekhez megfelelő: ✔ Egyéni hardverkövetelmények. ✔ Elkülönítés és biztonságos hálózati hozzáférés. ✔ Hibrid vagy többfelhős környezetben való futtatás képessége. ✔ Futtassa a meglévő Kubernetes-alkalmazásokkal és -szolgáltatásokkal együtt. |
A cikk többi táblázata összehasonlítja a különböző funkciókkal és viselkedésekkel kapcsolatos terveket. A dinamikus üzemeltetési csomagok (használat és prémium) költség-összehasonlítását lásd a Azure Functions díjszabási oldalán. A különböző dedikált csomagok díjszabását a App Service díjszabási oldalán talál.
Operációs rendszer/futtatókörnyezet
Az alábbi táblázat az üzemeltetési csomagok operációs rendszerét és nyelvi támogatását mutatja be.
Linux1,2 csak kóddal |
Csak windowsos kóddal | Linux1,2,3 Docker-tároló |
|
---|---|---|---|
Használatalapú csomag | C# JavaScript Java Python PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
Nincs támogatás |
Prémium szintű csomag | C# JavaScript Java Python PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core Python TypeScript |
Dedikált terv | C# JavaScript Java Python TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core Python TypeScript |
ASE | C# JavaScript Java Python TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core Python TypeScript |
Kubernetes (közvetlen) | n.a. | n.a. | C# JavaScript Java PowerShell Core Python TypeScript |
Azure Arc (előzetes verzió) | C# JavaScript Java Python TypeScript |
n.a. | C# JavaScript Java PowerShell Core Python TypeScript |
1 A Python futtatókörnyezeti verem egyetlen támogatott operációs rendszere a Linux.
2 A Linuxon futó PowerShell-támogatás jelenleg előzetes verzióban érhető el.
3 A Docker-tárolók esetében a Linux az egyetlen támogatott operációs rendszer.
A függvényalkalmazás időtúllépési időtartama
A függvényalkalmazás 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ó elindítja 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. További információ: 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) jeleníti meg:
Felkészülés | Alapértelmezett | Maximum1 |
---|---|---|
Használatalapú csomag | 5 | 10 |
Prémium szintű csomag | 302 | Korlátlan |
Dedikált terv | 302 | Korlátlan |
1 A függvényalkalmazás időtúllépési beállításától függetlenül 230 másodperc az a maximális idő, amellyel egy HTTP által aktivált függvény válaszolhat egy kérésre. Ennek oka a Azure Load Balancer alapértelmezett tétlen időtúllépése. Hosszabb feldolgozási idő esetén fontolja meg a Durable Functions aszinkron minta használatát, vagy halasztja a tényleges munkát, és azonnali választ ad vissza.
2 A Functions-futtatókörnyezet 1.x verziójának alapértelmezett időtúllépése korlátlan.
Méretezés
Az alábbi táblázat a különböző üzemeltetési csomagok skálázási viselkedését hasonlítja össze.
A maximális példányok függvényenkénti alkalmazásonként (használat) vagy csomagonként (prémium/dedikált) vannak megadva, hacsak másként nem jelezzük.
Felkészülés | Horizontális felskálázás | Maximális # példányok |
---|---|---|
Használatalapú csomag | Eseményvezérelt. Vertikális felskálázás automatikusan, még nagy terhelésű időszakokban is. Azure Functions infrastruktúra skálázza a processzor- és memória-erőforrásokat a Functions-gazdagép további példányainak hozzáadásával a bejövő eseményindító események száma alapján. | Windows: 200 Linux: 1001 |
Prémium szintű csomag | Eseményvezérelt. Vertikális felskálázás automatikusan, még nagy terhelésű időszakokban is. 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ényei által aktivált események száma alapján. | Windows: 100 Linux: 20-1002 |
Dedikált csomag3 | Manuális/automatikus skálázás | 10-30 |
ASE3 | Manuális/automatikus skálázás | 100 |
Kubernetes | Eseményvezérelt automatikus skálázás Kubernetes-fürtökhöz a KEDA használatával. | Fürttől függően változik |
1 A vertikális felskálázás során előfizetésenként óránként legfeljebb 500 példány érhető el a használatalapú csomagban futó Linux-alkalmazások esetében.
2 Egyes régiókban a Prémium csomaghoz tartozó Linux-alkalmazások 100 példányra méretezhetők. További információt a Prémium csomagról szóló cikkben talál.
3 A különböző App Service tervbeállításokra vonatkozó konkrét korlátokért lásd a App Service tervkorlátokat.
Hidegindítási viselkedés
Felkészülés | Részletek |
---|---|
Használatalapú csomag | Az alkalmazások tétlen állapotban nullára méretezhetők, ami azt jelenti, hogy egyes kérések indításkor további 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őmelegített helyőrző függvényekből való lekérést, amelyeken már futnak a függvénygazda és a nyelvi folyamatok. |
Prémium szintű csomag | Állandó meleg példányok a hidegindítás elkerülése érdekében. |
Dedikált terv | Dedikált csomagban való futtatáskor a Functions-gazdagép folyamatosan futhat, ami azt jelenti, hogy a hidegindítás nem igazán jelent problémát. |
ASE | Dedikált csomagban való futtatáskor a Functions-gazdagép folyamatosan futhat, ami azt jelenti, hogy a hidegindítás nem igazán jelent problémát. |
Kubernetes | A KEDA konfigurációjától függően az alkalmazások konfigurálhatók a hidegindítás elkerülése érdekében. Ha a skálázás nullára van konfigurálva, akkor az új események hidegindítást tapasztalnak. |
Szolgáltatási korlátozások
Erőforrás | Használatalapú csomag | Prémium szintű csomag | Dedikált terv | ASE | Kubernetes |
---|---|---|---|---|---|
Alapértelmezett időtúllépés időtartama (perc) | 5 | 30 | 301 | 30 | 30 |
Maximális időtúllépési időtartam (perc) | 10 | kötetlen7 | kötetlen2 | Korlátos | Korlátos |
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 | Fürttől függ |
Lekérdezési sztring maximális hossza3 | 4096 | 4096 | 4096 | 4096 | Fürttől függ |
Kérelem URL-címének maximális hossza3 | 8192 | 8192 | 8192 | 8192 | Fürttől függ |
ACU példányonként | 100 | 210-840 | 100-840 | 210-2508 | Az AKS díjszabása |
Maximális memória (GB példányonként) | 1.5 | 3.5-14 | 1.75-14 | 3.5 - 14 | Bármely csomópont támogatott |
Példányok maximális száma (Windows/Linux) | 200/100 | 100/20 | A 9.termékváltozattól függően változik | 1009 | Fürttől függ |
Függvényalkalmazások csomagonként | 100 | 100 | kötetlen4 | Korlátos | Korlátos |
App Service-csomagok | Régiónként 100 | Erőforráscsoportonként 100 | Erőforráscsoportonként 100 | - | - |
Üzembehelyezési pontok alkalmazásonként10 | 2 | 3 | 1-209 | 20 | n.a. |
5. tároló | 5 TB | 250 GB | 50–1000 GB | 1 TB | n.a. |
Egyéni tartományok alkalmazásonként | 5006 | 500 | 500 | 500 | n.a. |
Egyéni tartomány SSL-támogatása | nem kötött SNI SSL-kapcsolat is | kötetlen SNI SSL és 1 IP SSL-kapcsolat is | kötetlen SNI SSL és 1 IP SSL-kapcsolat is | kötetlen SNI SSL és 1 IP SSL-kapcsolat is | n.a. |
1 Alapértelmezés szerint egy App Service csomag Functions 1.x futtatókörnyezetének időtúllépése kötetlen.
2 Megköveteli, hogy a App Service csomag Always On értékre legyen állítva. Fizetés standard díjszabás szerint.
3 Ezek a korlátozások a gazdagépen vannak beállítva.
4 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.
5 A tárterületkorlát az ideiglenes tárterület teljes tartalommérete ugyanazon App Service csomag összes alkalmazásában. A használati terv Azure Files használ az ideiglenes tároláshoz.
6 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ében egy egyéni tartományt egy CNAME vagy egy A rekord használatával képezhet le.
7 Legfeljebb 60 percig garantált.
8 A feldolgozók olyan szerepkörök, amelyek ügyfélalkalmazásokat üzemeltetnek. 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.
9 A részletekért lásd App Service korlátokat.
10 Az éles ponttal együtt.
Új függvényalkalmazások meglévő erőforráscsoportban való létrehozásának korlátozásai
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 akkor fordulhat elő, ha a következő feltételek teljesülnek:
- 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.
- 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 termékváltozatok, az operációs rendszerek vagy más platformszintű funkciók, például a rendelkezésre állási zóna támogatása között fordulhat elő.
Ennek oka az, hogy a függvényalkalmazások és a webalkalmazás-csomagok hogyan vannak leképezve a különböző erőforráskészletekhez a létrehozáskor. A különböző termékváltozatok eltérő infrastruktúra-képességeket igényelnek. Amikor létrehoz egy alkalmazást egy erőforráscsoportban, a rendszer leképezi az adott erőforráscsoportot, és hozzárendeli egy adott erőforráskészlethez. Ha megpróbál létrehozni egy másik csomagot az adott erőforráscsoportban, és a leképezett készlet nem rendelkezik a szükséges erőforrásokkal, ez a hiba fog bekövetkezni.
Ha ez a hiba jelentkezik, hozza létre a függvényalkalmazást és az üzemeltetési tervet egy új erőforráscsoportban.
Hálózatkezelési funkciók
Szolgáltatás | Használatalapú csomag | Prémium szintű csomag | Dedikált terv | ASE |
---|---|---|---|---|
Bejövő IP-korlátozások | ✅Igen | ✅Igen | ✅Igen | ✅Igen |
Bejövő privát végpontok | ❌Nem | ✅Igen | ✅Igen | ✅Igen |
Virtuális hálózat integrációja | ❌Nem | ✅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 |
Hibrid kapcsolatok (csak Windows rendszeren) | ❌Nem | ✅Igen | ✅Igen | ✅Igen |
Kimenő IP-korlátozások | ❌Nem | ✅Igen | ✅Igen | ✅Igen |
Számlázás
Felkészülés | Részletek |
---|---|
Használatalapú csomag | Csak a függvények futá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. |
Prémium szintű csomag | A prémium csomag a szükséges és előre felmelegí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 leginkább kiszámítható díjszabást biztosítja. |
Dedikált terv | A 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. |
App Service Environment (ASE) | Az ASE-nek van egy átalánydíja, amely az infrastruktúráért fizet, és nem változik az ASE méretével. Az App Service csomag vCPU-jának költsége is meg van adva. Egy ASE környezeten belül az összes üzemeltetett alkalmazás az elkülönített díjszabású termékváltozatba tartozik. |
Kubernetes | Csak a Kubernetes-fürt költségeit kell fizetnie; nem kell további számlázást megadnia a Functions számára. A függvényalkalmazás alkalmazás-számítási feladatként fut a fürt tetején, csakúgy, mint egy normál alkalmazás. |