Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Azure Functions az Azure Container Appsben teljes mértékben felügyelt kiszolgáló nélküli üzemeltetési környezetet kínál, amely egyesíti az Azure Functions eseményvezérelt képességeit a Container Apps robusztus funkcióival. Ez az integráció olyan fejlett képességeket tartalmaz, mint a Kubernetes-alapú vezénylés, a KEDA által működtetett beépített automatikus skálázás (Kubernetes-alapú eseményvezérelt automatikus skálázás), a Dapr (elosztott alkalmazás futtatókörnyezet) integrációja, a GPU-számítási feladatok támogatása, a sidecar-támogatás, a virtuális hálózat (VNet) csatlakoztatása és a változatkezelés.
Ez a módszer akkor hasznos, ha azt szeretné, hogy a Functions más tárolóalapú alkalmazások, például mikroszolgáltatások, API-k vagy webhelyek mellett fusson. Emellett a függvényalkalmazások tárolóba helyezése segíthet, ha egyéni függőségekre van szüksége, vagy kihasználni szeretné a nullára skálázás előnyeit a költségmegtakarítás érdekében. Ha olyan számítási feladatokat futtat, mint az AI-következtetés, a Container Apps a GPU-alapú üzemeltetést is támogatja kiszolgáló nélküli GPU-ajánlat és dedikált számításiprofilok használatával.
Az Azure Container Apps egy integrált funkciójaként az Azure Functions-rendszerképeket közvetlenül az Azure Container Apps-re helyezheti üzembe az Microsoft.App erőforrás-szolgáltató használatával, a kind=functionapp hívásakor a az containerapp create beállításokat megadva. Az így létrehozott alkalmazások minden Azure Container Apps-funkcióhoz hozzáférhetnek. Ha az Azure Portalon keresztül telepít, a beállítás során engedélyezheti az Optimize for Functions alkalmazást . További részletekért tekintse meg az üzembe helyezési és telepítési szakaszt.
Fő előnyök
A Container Apps üzemeltetési modellje a tárolóalapú számítási feladatok rugalmasságára és az Azure Functions eseményvezérelt jellegére épül. A következő fő előnyöket kínálja:
- Az Azure Functionst egyéni függőségekkel és nyelvi veremekkel rendelkező tárolókként futtathatja.
- Skálázódás nullára és felskálázódás 1000 példányra a KEDA használatával
- Biztonságos hálózatkezelés teljes VNet-integrációval.
- Speciális tárolóalkalmazás-funkciók , például több változat, forgalom felosztása, Dapr-integráció és megfigyelhetőségi összetevők.
- Kiszolgáló nélküli és dedikált GPU-támogatás a nagy számítási feladatokhoz.
- Egyesített Container Apps-környezet a Függvények mikroszolgáltatások, API-k és háttérfeladatok mellett való futtatásához.
Az alábbi táblázat segítségével összehasonlíthatja a Container Apps-on futó függvények jellemzőit a Flex-használati csomaggal.
| Tulajdonság | Container Apps | Rugalmas kihasználtságú használati terv |
|---|---|---|
| Skálázás nullára | ✅ Igen (KEDA-n keresztül) | ✅ Igen |
| Maximális vertikális felskálázás | 1000 (alapértelmezett 10, konfigurálható) | 1,000 |
| Folyamatosan bekapcsolt példányok |
✅ Igen (által minReplicas) |
✅ Igen (mindig kész példányokon keresztül) |
| VNET-integráció | ✅ Igen | ✅ Igen |
| Saját tároló támogatása | ✅ Igen (saját kép létrehozása) | ❌ Korlátozott (nincs saját tárolója) |
| GPU-támogatás | ✅ Igen (serverless GPU dedikált munkaterhelés-profilon keresztül) | ❌ Nem |
| Beépített funkciók | A Container Apps szolgáltatás támogatása. Például: KEDA, Dapr, több verzió, mTLS, segédprogramok, belépési vezérlés stb. | Csak függvényekhez tartozó funkciók |
| Számlázási modell | Container Apps díjszabása: Használati csomag (vCPU, memória, kérések) > Dedikált csomag (számítási feladatprofil-alapú) | Végrehajtási idő + mindig kész példányok |
A Container Apps rendszeren futó függvények és a Rugalmas Fogyasztási terv, valamint minden más tervezési és üzemeltetési típus teljes összehasonlításához tekintse meg a Függvények méretezési és üzemeltetési lehetőségeit.
Lehetséges helyzetek
Az Azure Functions a Container Appsben számos használati esethez ideális, különösen akkor, ha eseményvezérelt végrehajtásra, tárolórugalmasságra vagy más szolgáltatásokkal való biztonságos integrációra van szüksége:
- Üzletági API-k: Egyéni kódtárak, csomagok és API-k csomagolása az Azure Functions szolgáltatással üzletági alkalmazásokhoz.
- Migrálás és modernizáció: Helyszíni örökölt és/vagy monolitikus alkalmazások migrálása a tárolók natív felhőbeli mikroszolgáltatásaiba.
- Eseményvezérelt feldolgozás: A Functions programozási modell segítségével könnyedén kezelheti az Event Grid, a Service Bus, az Event Hubs és más eseményforrások eseményeit.
- AI > GPU-számítási feladatok: Videók, képek, átiratok vagy bármely más feldolgozási igényű feladat kiszolgáló nélküli számítási feladatainak feldolgozása, amelyek GPU számítási erőforrásokat igényelnek. További információ: Kiszolgáló nélküli GPU-k használata az Azure Container Appsben.
- Mikroszolgáltatások: Integrálja az Azure Functionst más Container Apps által üzemeltetett szolgáltatásokkal.
- Egyéni tárolók: Csomagfüggvények egyéni futtatókörnyezetekkel vagy oldalkocsikkal.
- Privát alkalmazások: Csak belső függvények védelme virtuális hálózattal és belső bejövő forgalommal.
- .NET Aspire: A .NET Aspire és az Azure Functions integrációja lehetővé teszi egy Azure Functions .NET-projekt fejlesztését, hibakeresését és vezénylását a .NET Aspire alkalmazásgazda részeként. További információ az Azure Functionsről a .NET Aspire használatával
- Általános függvények: Futtasson minden támogatott szabványos Azure Functions-forgatókönyvet (például időzítőket, fájlfeldolgozást, adatbázis-eseményindítókat).
Üzembe helyezés és beállítás
Az Azure Functions Azure Container Appsen való üzembe helyezéséhez a Functions-alkalmazást egyéni tárolórendszerképként kell csomagolnia, és úgy kell üzembe helyeznie, mint bármely más tárolóalkalmazást, egyetlen kulcs különbséggel. Az Azure CLI- vagy ARM/Bicep-sablonok használatakor be kell állítania kind=functionapp a tulajdonságot. Részletes lépésekért és példákért tekintse meg a hivatalos első lépések dokumentációját.
az containerapp create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart-functions:latest \
--ingress external \
--target-port 80 \
--kind functionapp \
--query properties.outputs.fqdn
Ez a parancs a Functions-alkalmazás URL-címét adja vissza. Másolja ki ezt az URL-címet, és illessze be egy webböngészőbe.
Az Azure Portalon válassza az Azure Functions optimalizálása lehetőséget a tárolóalkalmazás létrehozása során a beállítás egyszerűsítése érdekében.
Minden szabványos üzembehelyezési módszer támogatott, beleértve a következőket:
- Azure CLI
- Azure Portál
- ARM-sablonok / Bicep
- CI-/CD-folyamatok (például GitHub Actions, Azure Pipelines)
Részletes lépésekért és példákért tekintse meg a hivatalos első lépések dokumentációját.
Árképzés és számlázás
Az Azure Functions az Azure Container Appsben ugyanazt a díjszabási modellt követi, mint az Azure Container Apps. A számlázás az Ön környezetéhez választott csomagtípuson alapul, amely lehet fogyasztási vagy dedikált csomag.
- Használati terv: Ez a kiszolgáló nélküli számítási lehetőség csak az alkalmazások futás közben használt erőforrásaiért számláz.
- Dedikált csomag: Ez a beállítás testre szabott számítási erőforrásokat biztosít, amelyek az egyes számításiprofilokhoz lefoglalt példányok számlázását biztosítják.
A választott terv határozza meg a számlázási számítások elvégzését. A környezet különböző alkalmazásai különböző terveket használhatnak.
Fontos szempontok:
- Az Azure Functions-programozási modell Container Appsen belüli használatához nem kell külön díjat fizetni.
- A Durable Functions és más speciális minták támogatása és számlázása ugyanazzal a Container Apps-díjszabási modellel történik. A részletes számlázási mechanikát és példákat az Azure Container Apps számlázásával kapcsolatos dokumentációjában találja.
Eseményvezérelt skálázás
Az Azure Functions a Container Appsben támogatja az Azure Functionsben elérhető összes fő nyelvi futtatókörnyezetet, beleértve a következőket: C#, JavaScript/ TypeScript (Node.js), Python, Java, PowerShell, egyéni tárolók (saját rendszerkép készítése).
Az Azure Container Appsben futó Azure Functions automatikusan konfigurálja a skálázási szabályokat az eseményforrás alapján, így nincs szükség manuális KEDA skálázási szabálydefiníciókra. Ezért az Azure Portalon a "Méretezési szabályok hozzáadása" gomb le van tiltva a Container Apps-függvények esetében. A minimális és maximális replikaszám azonban továbbra is meghatározható a skálázási határok létrehozásához és az erőforrás-kiosztás feletti irányítás fenntartásához.
A Container Apps az alábbi kivételekkeltámogatja az összes szabványos Azure Functions-eseményindítót és kötést:
- Blob Storage-eseményindító automatikus skálázása: Csak akkor működik, ha az Event Gridet használja forrásként. További információ az Azure Functions esemény-előfizetéssel történő aktiválásáról blobtárolókon
- Durable Functions automatikus skálázás: Csak az MSSQL (Microsoft SQL Server) és a DTS (Durable Task Scheduler) tárolószolgáltatókat támogatja. További útmutatás a Durable Functions MSSQL-sel való üzembe helyezéséhez
- Az automatikus skálázás nem támogatott:
- Azure Cache for Redis
- Azure SQL
A felügyelt identitások támogatottak az azt engedélyező triggerekhez és kötésekhez. A következőkhöz is elérhetők:
- Alapértelmezett tárfiók (AzureWebJobsStorage)
- Azure Container Registry (ACR)
- Csatlakozás eseményforrások aktiválásához
Nem támogatott eseményindítók esetén használja a rögzített replikaszámokat (azaz a minReplicas > 0 beállítását) az Azure Functionsben az Azure Container Appsben. További részletekért tekintse meg a Functions fejlesztői útmutatóját.
Skálázás és teljesítmény
Az Azure Functions on Container Apps automatikusan skálázható a KEDA-t használó események alapján, és nincs szükség a méretezési szabályok manuális konfigurálására. Továbbra is beállíthatja a minimális/maximális replikákat a skálázási viselkedés szabályozásához.
- Eseményvezérelt skálázás: Automatikus skálázás olyan eseményindítók alapján, mint az Event Grid, a Service Bus vagy a HTTP.
- Skálázás nullára: A tétlen alkalmazások nullára skálázhatók a költségek csökkentése érdekében.
- Hidegindítás szabályozása: Tudnivalók az Azure Container Apps hidegindítási idejének csökkentéséről.
- Egyidejűség: Minden példány egyszerre több eseményt is feldolgozhat.
- Nagy léptékű: Skálázás alkalmazásonként 1000 példányra (alapértelmezés szerint 10).
- GPU-támogatás: Nagy számítási feladatok, például AI-következtetés futtatása GPU-alapú csomópontok használatával.
Ez ideálissá teszi a Container Appst a kipukkasztott és állandó állapotú számítási feladatokhoz is. További információ: Méretezési szabályok beállítása az Azure Container Appsben
Hálózatkezelés és biztonság
Az Azure Functions a Container Apps robusztus hálózatkezelési és biztonsági funkcióinak előnyeit nyújtja a biztonságos, méretezhető üzembe helyezéshez:
- Virtuális hálózatok integrációja: Privát erőforrások biztonságos elérése belső végpontokon és privát adatbázisokon keresztül.
- Felügyelt identitás: Hitelesítés Azure-szolgáltatásokkal rendszer-/felhasználó által hozzárendelt identitásokkal – nincs szükség titkos kódokra vagy kapcsolati sztringekre.
- Dapr-támogatás: Publikáció/Feliratkozás, állapotkezelés és biztonságos szolgáltatáshívás engedélyezése a Dapr oldalkocsikon keresztül. További információ: A Dapr által üzemeltetett Mikroszolgáltatási API-k.
- Bejövő forgalom és TLS: Tedd elérhetővé a biztonságos HTTP-végpontokat TLS/mTLS-lel, egyedi tartományokkal, vagy tartsd őket belső hálózaton belül.
- Környezetelkülönítés: A függvények megosztják a Container Apps környezethatárait a biztonságos, hatókörön belüli kommunikáció érdekében.
Ezek a képességek ideálissá teszik a Container Apps által üzemeltetett függvényeket nagyvállalati szintű, biztonságos kiszolgáló nélküli alkalmazásokhoz.
Monitorozás és naplózás
Az Azure Functions on Container Apps zökkenőmentesen integrálható az Azure megfigyelhetőségi eszközeivel a teljesítmény nyomon követéséhez és a problémák diagnosztizálása érdekében:
- Application Insights: Telemetriát biztosít a kérésekhez, függőségekhez, kivételekhez és egyéni nyomkövetésekhez. További információ: Az Azure Functions monitorozása.
- Log analytics: Rögzíti a tároló életciklusát és skálázási eseményeit (például FunctionsScalerInfo-bejegyzéseket). További információ: Alkalmazásnaplózás az Azure Container Appsben.
- Egyéni naplózás: Támogatja a szabványos keretrendszereket, például az ILoggert és a konzolnaplózást strukturált kimenetekhez.
- Központosított figyelés: A Container Apps-környezet egységes irányítópultokat és riasztásokat kínál az összes alkalmazáshoz.
Megfontolások
Tartsa szem előtt ezeket a további szempontokat az Azure Functions Azure Container Appsben való használatakor:
- Az automatikus skálázás bejövő forgalmának követelménye: Az eseményeken alapuló automatikus skálázás engedélyezéséhez engedélyezni kell a bejövő forgalmat – nyilvánosan vagy a Container Apps belső környezetében.
- Kötelező tárfiók: A Container Appsben üzembe helyezett összes függvényalkalmazást egy tárfiókhoz kell kapcsolni. Ez az eseményindítók, naplók és állapotok kezeléséhez szükséges. Tekintse át a tárfiók útmutatását az ajánlott eljárásokhoz.
- Többváltozatos tárolás: Több aktív változattal történő üzembe helyezéskor minden változathoz rendeljen hozzá egy dedikált tárfiókot. A dedikált tárfiók használata segít megelőzni az ütközéseket, és biztosítja a megfelelő elkülönítést. Másik lehetőségként, ha nem igényel egyidejű változatokat, fontolja meg az egyszerű felügyelethez az alapértelmezett egyetlen változat módot.
- Többváltozatos eseményindítók: Ha többváltozatos módot használ lekéréses alapú eseményindítóval, minden változathoz használjon egy másik eseményforrást, hogy elkerülje a versengő felhasználókkal kapcsolatos ütközéseket. Az Azure Queue Storage, az Azure Event Hub, az Azure Service Bus vagy a Durable Functions eseményindítóit használó függvények példaként szolgálnak a lekéréses alapú eseményindítókra.
- Hidegindítási késés: Ha a tárolóalkalmazás tétlen időszakokban nullára skáláz, az inaktivitás utáni első kérés hidegindítást tapasztal. További információ a hideg kezdési idők csökkentéséről.
- Application Insights-integráció: A robusztus monitorozás és diagnosztika érdekében kapcsolja össze a Functions-alkalmazást az Application Insightsszal. További információ: App Insights-integráció a Functions szolgáltatással.
- Függvény-proxyk: Nem támogatott. Api Gateway-forgatókönyvek esetén integrálható inkább az Azure API Managementtel.
- Üzembehelyezési pontok: Az előkészítés és az éles tárolóhelyek nem érhetők el. Használjon kék-zöld üzembe helyezési stratégiákat a nulla állásidős kiadásokhoz.
- Függvény-hozzáférési kulcsok: A portál használata a Functions hozzáférési kulcsainak létrehozásához nem támogatott. Fontolja meg az Azure Key Vault használatát a kulcsok tárolásához. A http-végpontok éles környezetben történő védelméhez az alábbi lehetőségeket is használhatja:
- Kvóta- és erőforráskorlátok: A Container Apps-környezetek alapértelmezett memória-, PROCESSZOR- és példányszámkorlátokkal rendelkeznek régiónként. További információkért tekintse meg a környezeti korlátokat és az alapértelmezett kvótákat. Ha a számítási feladat több erőforrást igényel, kérheti a kvóta növelését.
- Manuális méretezési szabálykonfiguráció: Az Azure Portal "Méretezési szabályok hozzáadása" gombja le van tiltva a Container Appsben üzemeltetett Azure Functions esetében, mert a skálázási szabályok automatikusan konfigurálódnak az eseményforrás alapján. Ebben a beállításban nincs szükség manuális KEDA-szabálydefiníciókra.
Visszajelzés küldése
Küldjön el egy problémát vagy egy funkciókérést az Azure Container Apps GitHub-adattárba.
Következő lépések / További erőforrások
Az Azure Functions a Container Appsen való tanulásának és fejlesztésének folytatásához tekintse meg a következő erőforrásokat:
- Első lépések – Részletes útmutató az Azure Functions üzembe helyezéséhez és konfigurálásához az Azure Container Appsben.
- Az Azure Container Apps dokumentációja – Teljes körű referencia a Container Apps-funkciókhoz, beleértve a skálázási, hálózatkezelési, Dapr- és számítási feladatok profiljait.
- Az Azure Container Apps díjszabása – A fogyasztásalapú számlázás és a dedikált csomag költségeinek részletei.
- Az Azure Functions üzemeltetési lehetőségei – Az üzemeltetési csomagok összehasonlítása, beleértve a Container Appst, a Flex Consumptionet, a Premiumot és a Dedikáltat.
- Azure Functions fejlesztői útmutató – Az eseményindítók, kötések, futtatókörnyezeti viselkedés és konfiguráció részletes bemutatása.