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

További lépések