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 csomagot az alkalmazáshoz. Az Azure Functions három alapszintű Azure Functions-üzemeltetési csomagot biztosít: Használati csomag, Prémium csomag és Dedikált (App Service) csomag. Ezeket az üzemeltetési csomagokat Azure-alkalmazás szolgáltatásinfrastruktúra segíti, és általánosan elérhetőek Linux és Windows rendszerű virtuális gépeken is.
A választott Azure Functions üzemeltetési csomag 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.
Az Azure Functions üzemeltetése mellett tárolóalapú függvényalkalmazásokat is üzemeltethet olyan tárolókban, amelyek üzembe helyezhetők a Kubernetes-fürtökön vagy az Azure Container Appsben. 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 egyéni tárolóalkalmazások üzembe helyezéséről további információt az Azure Functionst üzemeltető Azure Container Appsben talál.
Ez a cikk részletes összehasonlítást nyújt a különböző üzemeltetési tervek között, beleértve a tárolóalapú üzemeltetési lehetőségeket is.
Megjegyzés:
Az Azure Functions-tárolók üzemeltetése az Azure Arc-kompatibilis Kubernetes-fürtökön és az Azure Container Appsben jelenleg előzetes verzióban érhető el.
A tervek áttekintése
Az alábbiakban összefoglaljuk a három fő Azure Functions-üzemeltetési csomag előnyeit:
Plan | Előnyök |
---|---|
Használati terv | Automatikusan skálázhat, és csak akkor kell fizetnie a számítási erőforrásokért, amikor a függvények futnak. 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. ✔ Csak akkor kell fizetnie, ha a függvények futnak. ✔ Automatikusan skáláz, még nagy terhelés esetén is. |
Prémium csomag | Az igény szerinti automatikus skálázás előre felmelegített feldolgozók használatával történik, 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. ✔ 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 a Használati csomag által biztosítottak. ✔ A kódnak hosszabb ideig kell futnia, mint a használati tervben megengedett maximális végrehajtási idő. ✔ Olyan funkciókra van szüksége, amelyek nem érhetők el a használati csomagban, például virtuális hálózati kapcsolatra van szükség. ✔ Egy 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-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ő, kihasználatlan virtuális gépekkel rendelkezik, amelyek már más App Service-példányokat is futtatnak. ✔ 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 legnagyobb mértékű vezérlést és elkülönítést biztosítják a függvényalkalmazások futtatásához.
Üzemeltetési lehetőség | Részletek |
---|---|
A Standard kiadás | Az App Service Environment (A Standard kiadás) egy App Service-szolgáltatás, amely teljesen elkülönített és dedikált környezetet biztosít az App Service-alkalmazások nagy léptékű biztonságos futtatásához. Az A Standard kiadás olyan alkalmazás-számítási feladatokhoz használhatók, amelyek a következőket igénylik: ✔ 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. |
Azure Container Apps | Az Azure Container Apps egy teljes mértékben felügyelt környezet, amely lehetővé teszi mikroszolgáltatások és tárolóalapú alkalmazások futtatását egy kiszolgáló nélküli platformon. Az Azure Container Apps lehetővé teszi a függvények futtatását az alapul szolgáló Azure Kubernetes Service (AKS) segítségével, miközben megszünteti a Kubernetes API-kkal való munka összetettségét. |
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 futtatható. ✔ Futtassa a meglévő Kubernetes-alkalmazásokkal és -szolgáltatásokkal együtt. |
A cikk további táblázatai összehasonlítják a különböző funkciókra és viselkedésekre vonatkozó terveket. A dinamikus üzemeltetési csomagok (Használat és Prémium) 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.
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 Windows-kód | Linux1,2,3 Docker-tároló |
|
---|---|---|---|
Használati terv | C# JavaScript Java Python PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
Nincs támogatás |
Prémium 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 |
A Standard kiadás | 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.
A 3 Linux az egyetlen támogatott operációs rendszer a Docker-tárolókhoz.
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. 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:
Plan | Alapértelmezett | Maximum1 |
---|---|---|
Használati terv | 5 | 10 |
Prémium csomag | 302 | Korlátlan3 |
Dedikált terv | 302 | Korlátlan3 |
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-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.
2 A Functions-futtatókörnyezet 1.x verziójának alapértelmezett időtúllépése korlátlan.
3 Garantáltan legfeljebb 60 percig. Az operációs rendszer és a futtatókörnyezet javítása, a biztonsági rések javítása és a működés skálázása továbbra is megszakíthatja a függvényvégrehajtásokat, így biztosítva a robusztus függvények írását.
Scale
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.
Plan | Scale out | Maximális # példányok |
---|---|---|
Használati terv | 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 bejövő eseményindító események száma alapján. | Windows: 200 Linux: 1001 |
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 a függvénygazda további példányainak hozzáadásával skálázza a processzor- és memóriaerőforrásokat 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 |
A Standard kiadás 3 | 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 jelenleg előfizetésenként óránként 500 példány van korlátozva a használatalapú linuxos alkalmazások esetében.
2 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.
3 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.
Hidegindítási viselkedés
Plan | 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 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őre melegített helyőrző függvényekből való lekérést, amelyek már futnak a függvénygazda és a nyelvi folyamatok. |
Prémium csomag | Tartósan 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 probléma. |
A Standard kiadás | Dedikált csomagban való futtatáskor a Functions-gazdagép folyamatosan futhat, ami azt jelenti, hogy a hidegindítás nem igazán probléma. |
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ényeknél hidegindítás tapasztalható. |
Szolgáltatási korlátozások
Resource | Használati terv | Prémium csomag | Dedikált terv | A Standard kiadás | 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 | A fürttől függ |
Lekérdezési sztring maximális hossza3 | 4096 | 4096 | 4096 | 4096 | A fürttől függ |
Kérelem URL-címének maximális hossza3 | 8192 | 8192 | 8192 | 8192 | A 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 | Minden csomópont támogatott |
Példányok maximális száma (Windows/Linux) | 200/100 | 100/20 | termékváltozattólfüggően 9 | 1009 | A fürttől függ |
Függvényalkalmazások csomagonként11 | 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 GB | 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 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 | 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 az App Service-csomag Always On értékre legyen állítva. Fizetés standard díjszabás szerint.
3 Ezek a korlátok 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 az ugyanabban az App Service-csomagban lévő összes alkalmazásra vonatkozóan. A használati csomag az Azure Filest használja 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én egy egyéni tartományt CNAME vagy A rekord használatával képezhet le.
7 Garantáltan legfeljebb 60 percig.
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 tekintse meg az App Service korlátait .
10 Az éles ponttal együtt.
11 Egy adott előfizetésben jelenleg 5000 függvényalkalmazás van korlátozva.
Ú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 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 történhet termékváltozatok, 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.
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 leképezett készlet nem rendelkezik a szükséges erőforrásokkal, ez a hiba fog történni.
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
Funkció | Használati terv | Prémium csomag | Dedikált terv | A Standard kiadás |
---|---|---|---|---|
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 esetén) | ❌Nem | ✅Igen | ✅Igen | ✅Igen |
Kimenő IP-korlátozások | ❌Nem | ✅Igen | ✅Igen | ✅Igen |
Billing
Plan | 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. |
Prémium csomag | A prémium csomag a szükséges és előre felmelegített példányokon haszná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. |
App Service Environment (A Standard kiadás) | Az A Standard kiadás havi átalánydíja az infrastruktúraért fizet, és nem változik az A Standard kiadás 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. |
Kubernetes | Csak a Kubernetes-fürt költségeit kell fizetnie; nincs további számlázás a Functions számára. A függvényalkalmazás alkalmazás-számítási feladatként fut a fürt tetején, ugyanúgy, mint egy normál alkalmazás. |