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 functionTimeouthost.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.

Következő lépések