Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure Functions a Azure Container Apps teljes mértékben felügyelt kiszolgáló nélküli üzemeltetési környezetet kínál, amely egyesíti a 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.
Mint az Azure Container Apps integrált funkciója, közvetlenül üzembe helyezhet Azure Functions képeket az Azure Container Apps környezetében a Microsoft.App erőforrás-szolgáltató használatával, ha a kind=functionapp hívásakor beállítja a az containerapp create-t. Az így létrehozott alkalmazások minden Azure Container Apps funkcióhoz hozzáférhetnek. Ha Azure portálon keresztül telepít, a beállítás során engedélyezheti a Optimize for Functions alkalmazás beállítást. További információkért tekintse meg az üzembe helyezés és a beállítás szakaszt.
Fő előnyök
A Tárolóalkalmazások üzemeltetési modellje a tárolóalapú számítási feladatok rugalmasságára és a Azure Functions eseményvezérelt jellegére épül. A következő fő előnyöket kínálja:
- Azure Functions tárolóként való futtatása egyéni függőségekkel és nyelvi környezetekkel.
- 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 fogyasztási 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
Azure Functions a Container Appsben számos használati esethez ideálisak, 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önyvtárak, csomagok és API-k előkészítése és kezelése Azure Functions segítségével az üzletági alkalmazások számára.
- 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.
- Event-alapú feldolgozás: Az Event Grid, a Service Bus, az Event Hubs és más eseményforrások eseményeinek kezelése a Functions programozási modell egyszerű használatával.
- 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óért tekintse meg: Az Azure Container Apps kiszolgáló nélküli GPU-jainak használata.
- Microservices: Integrálja a Azure Functions 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ő használatra szánt Funkciók védelme virtuális hálózattal és belső belépési ponttal.
- .NET Aspire: A .NET Aspire és a Azure Functions integrálása lehetővé teszi egy Azure Functions .NET projekt fejlesztését, hibakeresését és vezénylását az .NET Aspire alkalmazásgazda részeként. További információkat olvashat az Azure Functions és .NET Aspire témában.
- General Functions: Futtassa a támogatott standard Azure Functions forgatókönyveket (például időzítők, fájlfeldolgozás, adatbázis-eseményindítók).
Üzembe helyezés és beállítás
A Azure Container Apps Azure Functions üzembe helyezéséhez a Functions-alkalmazást egyéni tárolólemezképként kell csomagolnia, és úgy kell üzembe helyeznie, mint bármely más tárolóalkalmazást, egyetlen kulcs különbséggel. A Azure CLI vagy ARM/Bicep sablonok használatakor be kell állítania a kind=functionapp 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.
A Azure portálon válassza a Optimize for Azure Functions lehetőséget a tárolóalkalmazás létrehozása során a beállítás egyszerűsítése érdekében.
Az Azure portál képernyőképe egy Azure Functions számára előre konfigurált tárolóalkalmazás létrehozásakor.
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
Azure Functions on Azure Container Apps ugyanazt az árazási modellt követik, amelyet 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 csomag: 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:
- A Azure Functions programozási modell Container Appsen belüli használatához nem kell külön díjat fizetni.
- Durable Functions és egyéb speciális mintákat ugyanazzal a Container Apps díjszabási modellel támogatjuk és számlázunk. Részletes számlázási mechanikát és példákat a Billing Azure Container Apps dokumentációjában talál.
Eseményvezérelt skálázás
A Container Apps Azure Functions támogatja az Azure Functions-ben elérhető összes fő language futtatókörnyezetet, beleértve a C#, a JavaScript/TypeScript (Node.js), a Python, a Java, a PowerShell és az Egyéni tárolók használatát (saját rendszerkép hozása).
Az Azure Container Apps-en futó Azure Functions automatikusan konfigurálja a skálázási szabályokat az eseményforrás alapján, így manuális KEDA skálázási szabályok meghatározására nincs szükség. Ezért az Azure portál "Méretezési szabályok hozzáadása" gombja 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 platform automatikusan lefordítja a Functions eseményindító paramétereit ( host.json konfigurációs vagy triggerattribútumokból) a megfelelő KEDA-méretezési paraméterekre. A Functions trigger konfigurációinak KEDA skálázási paraméterekre való leképezésének részletes ismertetése megtekinthető a Azure Functions KEDA skálázási leképezések oldalon.
Az összes standard Azure Functions eseményindító és kötés támogatott a Container Appsben az alábbi kivételekkel:
- Blob Storage Trigger 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ésen keresztüli aktiválásáról blobtárolók esetén
- 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ő célokra 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ében az Azure Functions az Azure Container Apps szolgáltatásban használjon rögzített replikaszámokat (azaz állítsa be a minReplicas > 0 értékre). További információkért tekintse meg a Functions fejlesztői útmutatóját.
Skálázás és teljesítmény
Azure Functions a Container Appsben a KEDA-t használó események alapján automatikusan méretezhető, é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.
- Event-alapú 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.
- Cold start control: További információ a az Azure Container Apps hidegindítási idejének szabályozá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ó: Skálázási szabályok beállítása az Azure Container Apps-ben
Hálózatkezelés és biztonság
A Container Apps Azure Functions kihasználja a Container Apps robusztus hálózati és biztonsági funkcióit a biztonságos és méretezhető üzembe helyezés érdekében.
- 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.
- A felügyelt identitás: Hitelesítés Azure szolgáltatásokkal rendszer-/felhasználó által hozzárendelt identitások használatával – 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
Azure Functions a Container Appsben zökkenőmentesen integrálható a Azure megfigyelhetőségi eszközeivel a teljesítmény nyomon követéséhez és a probléma diagnosztizáláshoz:
- 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ó: Monitor Azure Functions.
- 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óért lásd: Application Logging in Azure Container Apps.
- 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.
Környezeti változók
Azure Functions a Container Appsen futtatva hozzáféréssel rendelkezik a rendszer által biztosított környezeti változókhoz. A CONTAINER_NAME környezeti változó automatikusan a függvényalkalmazás replikanevére van beállítva. Ezt a változót többreplika-forgatókönyvekben történő naplózáshoz, korrelációhoz és hibakereséshez használhatja.
A rendszer által biztosított környezeti változók teljes listáját a Azure Container Apps
Megfontolások
A Azure Container Apps Azure Functions használatakor vegye figyelembe az alábbi egyéb szempontokat:
- 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. A Azure Queue Storage, Azure Event Hubs, Azure Service Bus vagy Durable Functions eseményindítókat használó függvények példaként szolgálnak a lekéréses alapú triggerekre.
- 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áljon inkább az Azure API Management rendszerrel.
- Telepítési helyek: A staging és a termelési helyek nem érhetők el. Használjon kék-zöld üzembe helyezési stratégiákat a megszakítás nélküli kiadásokhoz.
- Függvény-hozzáférési kulcsok: A függvények hozzáférési kulcsainak létrehozása a portálon nem támogatott. Fontolja meg a 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.
- A skálázási szabály konfigurálása: A Azure portál "Méretezési szabályok hozzáadása" gombja le van tiltva a Container Appsben üzemeltetett Azure Functions esetében, mert a méretezési szabályok automatikusan konfigurálva vannak 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
Probléma vagy szolgáltatáskérés elküldése a Azure Container Apps GitHub adattárba.
Következő lépések / További erőforrások
A Container Apps Azure Functions tanulásának és fejlesztésének folytatásához tekintse meg a következő erőforrásokat:
- Getting started: Részletes útmutató az Azure Functions az Azure Container Apps-ba való üzembe helyezéséhez és konfigurálásához.
- Azure Container Apps dokumentáció: Teljes körű referenciák a Container Apps szolgáltatásaihoz, beleértve a skálázást, a hálózatkezelést, a Dapr-t és a számítási feladatprofilokat.
- Azure Container Apps díjszabás: A fogyasztásalapú számlázás és a dedikált csomag költségeinek részletei.
- Azure Functions üzemeltetési lehetőségek: Az olyan üzemeltetési csomagok összehasonlítása, mint a Container Apps, a Flex Consumption, a Premium és a Dedicated.
- Azure Functions fejlesztői útmutató: Részletes útmutató az eseményindítókról, kötésekről, futtatókörnyezeti viselkedésről és konfigurációról.