Megosztás a következőn keresztül:


Azure Container Apps hosting of Azure Functions

Az Azure Functions integrált támogatást nyújt a tárolóalapú függvényalkalmazások fejlesztéséhez, üzembe helyezéséhez és kezeléséhez az Azure Container Appsben. Az Azure Container Apps használatával üzemeltetheti a függvényalkalmazás-tárolókat, amikor az eseményvezérelt függvényeket az Azure-ban kell futtatnia ugyanabban a környezetben, mint más mikroszolgáltatások, API-k, webhelyek, munkafolyamatok vagy bármely tároló által üzemeltetett program. A tárolóalkalmazások üzemeltetése lehetővé teszi a függvények teljes körűen felügyelt, Kubernetes-alapú környezetben való futtatását a nyílt forráskódú monitorozás, az mTLS, a Dapr és a Kubernetes eseményvezérelt automatikus skálázás (KEDA) beépített támogatásával.

A függvénykódot megírhatja bármilyen programozási környezetben, amelyet a Functions támogat. Ugyanazokat a Functions-eseményindítókat és kötéseket használhatja eseményvezérelt skálázással. A meglévő Functions-ügyféleszközökkel és az Azure Portallal tárolókat hozhat létre, függvényalkalmazás-tárolókat helyezhet üzembe a Container Appsben, és konfigurálhatja a folyamatos üzembe helyezést.

A Container Apps integrációja azt is jelenti, hogy a Container App környezeti szintjén definiált hálózati és megfigyelhetőségi konfigurációk ugyanúgy vonatkoznak a függvényalkalmazásra, mint a Container Apps-környezetben futó összes mikroszolgáltatásra. A Container Apps egyéb natív felhőbeli funkcióit is megkapja, beleértve a KEDA-t, a Dapr-t és az Envoyt. Továbbra is használhatja az Application Insightst a függvények végrehajtásának figyelésére, és a függvényalkalmazás hozzáférhet a környezet által biztosított virtuális hálózati erőforrásokhoz.

Az Azure Functions tároló-üzemeltetési lehetőségeinek általános áttekintését lásd: Linux-tárolók támogatása az Azure Functionsben.

Üzemeltetési és számítási feladatok profiljai

A Container Apps két elsődleges üzemeltetési csomaggal rendelkezik, egy kiszolgáló nélküli használati csomaggal és egy dedikált csomaggal, amelyek számítási feladatprofilokat használnak az üzembehelyezési erőforrások jobb szabályozásához. A számítási feladatok profilja határozza meg a környezetben üzembe helyezett tárolóalkalmazások számára elérhető számítási és memória-erőforrások mennyiségét. Ezek a profilok az alkalmazások különböző igényeinek megfelelően vannak konfigurálva.

The Consumption workload profile is the default profile added to every Workload profiles environment type. A környezet létrehozásakor vagy létrehozása után dedikált számítási feladatok profiljait is hozzáadhatja a környezethez. A számítási feladatok profiljaival kapcsolatos további információkért lásd : Számítási feladatok profiljai az Azure Container Appsben.

A tárolóalapú függvényalkalmazásokat üzemeltető Container Apps minden olyan régióban támogatott, amely támogatja a Container Apps szolgáltatást.

Ha az alkalmazásának nincsenek specifikus hardverkövetelményei, a környezetet futtathatja vagy egy fogyasztásalapú csomagban, vagy egy dedikált csomagban az alapértelmezett használati profil használatával. Ha függvényeket futtat a Container Appsben, csak a Container Apps használatáért kell fizetnie. További információkért tekintse meg az Azure Container Apps díjszabási oldalát.

Az Azure Functions az Azure Container Appsben támogatja a GPU-kompatibilis üzemeltetést a dedikált csomagban számítási feladatprofilokkal.

Ha tudni szeretné, hogyan hozhat létre és helyezhet üzembe függvényalkalmazás-tárolót a Container Appsben az alapértelmezett használati csomagban, olvassa el az első tárolóalapú függvények létrehozása az Azure Container Appsben című témakört.

Ha tudni szeretné, hogyan hozhat létre Egy Container Apps-környezetet számítási feladatprofilokkal, és hogyan helyezhet üzembe egy függvényalkalmazás-tárolót egy adott számítási feladatra, tekintse meg a Container Apps számítási feladatprofiljait.

Functions in containers

A Container Apps üzemeltetéséhez a kódnak egy függvényalkalmazáson kell futnia egy Olyan Linux-tárolóban, amelyet ön hoz létre és tart fenn. A Functions a tárolóalapú függvényalkalmazások létrehozásához használható nyelvspecifikus alaprendszerképeket tart fenn.

Amikor kódprojektet hoz létre az Azure Functions Core Tools használatával, és belefoglalja a lehetőséget--docker Core Tools létrehozza a Dockerfile-t a megfelelő alaprendszerképpel, amelyet kiindulási pontként használhat a tároló létrehozásakor.

Fontos

Saját tárolók létrehozásakor a tároló alaprendszerképét frissítenie kell a legújabb támogatott alaprendszerképre. Az Azure Functions támogatott alaprendszerképei nyelvspecifikusak, és az Azure Functions alaprendszerkép-adattárában találhatók.

A Functions csapata elkötelezte magát amellett, hogy havi frissítéseket tegyen közzé ezekhez az alapvető képfájlokhoz. A rendszeres frissítések közé tartoznak a legújabb alverziófrissítések és biztonsági javítások mind a Functions-futtatókörnyezethez, mind a nyelvekhez. Rendszeresen frissítenie kell a tárolót a legújabb alaprendszerképről, és újból üzembe kell helyeznie a tároló frissített verzióját. További információkért lásd: Egyéni tárolók karbantartása.

Amikor módosítja a függvénykódját, újra kell építenie és újra közzé kell tennie a konténerképet. További információ: Rendszerkép frissítése a beállításjegyzékben.

Telepítési beállítások

Az Azure Functions jelenleg a következő módszereket támogatja a tárolóalapú függvényalkalmazások Azure Container Appsben való üzembe helyezéséhez:

A tárolóalapú alkalmazásokat folyamatosan üzembe helyezheti a forráskódból az Azure Pipelines vagy a GitHub Actions használatával. A Functions folyamatos üzembe helyezési funkciója jelenleg nem támogatott a Container Appsben való üzembe helyezéskor.

Kezelt identitás jogosultsága

A legjobb biztonság érdekében microsoft Entra-hitelesítéssel és felügyelt identitás-engedélyezéssel kell csatlakoznia a távoli szolgáltatásokhoz. A felügyelt identitásokat a következő kapcsolatokhoz használhatja:

A Container Appsben való futtatáskor a Microsoft Entra ID-t felügyelt identitásokkal használhatja a felügyelt identitásokat támogató összes kötésbővítményhez. Jelenleg csak ezek a kötésbővítmények támogatják az eseményvezérelt skálázást felügyelt identitáshitelesítés használatakor:

  • Azure-eseményközpontok
  • Azure Queue Storage
  • Azure Service Bus

Más kötések esetén rögzített replikákat használjon felügyelt identitáshitelesítés használatakor. További információkért tekintse meg a Functions fejlesztői útmutatóját.

Virtuális hálózat integrációja

Ha a függvényalkalmazásokat Container Apps-környezetben üzemelteti, a függvények a belső és a külsőleg elérhető virtuális hálózatok előnyeit is kihasználhatják. A környezeti hálózatokkal kapcsolatos további információkért lásd: Hálózatkezelés az Azure Container Apps-környezetben.

Eseményvezérelt skálázás

Minden Függvény-eseményindító használható a tárolóalapú függvényalkalmazásban. Azonban csak ezek az eseményindítók skálázhatók dinamikusan (nulla példányból) a fogadott események alapján, amikor egy Container Apps-környezetben futnak:

  • Azure Event Grid
  • Azure-eseményközpontok
  • Azure Blob Storage (eseményalapú)
  • Azure Queue Storage
  • Azure Service Bus
  • Durable Functions (MSSQL storage provider)
  • HTTP
  • Kafka
  • Időzítő

Az Azure Functions a Container Appsben az eseménycélnak megfelelően konfigurálja a méretezési paramétereket és szabályokat. Nem kell aggódnia a KEDA-skálázott objektumok konfigurálása miatt. A függvényalkalmazás létrehozásakor vagy módosításakor továbbra is beállíthatja a minimális és maximális replikaszámot. Az alábbi Azure CLI-parancs beállítja a minimális és maximális replikaszámot, amikor új függvényalkalmazást hoz létre egy Container Apps-környezetben egy Azure Container Registryből:

az functionapp create --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1 --storage-account <STORAGE_NAME> --environment MyContainerappEnvironment --image <LOGIN_SERVER>/azurefunctionsimage:v1 --registry-username <USERNAME> --registry-password <SECURE_PASSWORD> --registry-server <LOGIN_SERVER>

A következő parancs egy meglévő függvényalkalmazás minimális és maximális replikaszámát állítja be:

az functionapp config container set --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1

Felügyelt erőforráscsoportok

Az Azure Functions on Container Apps speciálisan felügyelt erőforráscsoportokban futtatja a tárolóalapú függvényalkalmazás erőforrásait. Ezek a felügyelt erőforráscsoportok segítenek megvédeni az alkalmazások konzisztenciáját azáltal, hogy megakadályozzák a felügyelt csoport erőforrásainak nem szándékos vagy jogosulatlan módosítását vagy törlését, még a szolgáltatásnevek által is.

A rendszer akkor hoz létre felügyelt erőforráscsoportot, amikor először hoz létre függvényalkalmazás-erőforrásokat egy Container Apps-környezetben. A tárolóalapú függvényalkalmazás által igényelt Container Apps-erőforrások ebben a felügyelt erőforráscsoportban futnak. Az ugyanabban a környezetben létrehozott egyéb függvényalkalmazások ezt a meglévő csoportot használják.

A felügyelt erőforráscsoport automatikusan törlődik, miután az összes függvényalkalmazás-tárolóerőforrás el lett távolítva a környezetből. Amíg a felügyelt erőforráscsoport látható, a felügyelt erőforráscsoport módosítására vagy eltávolítására tett kísérletek hibát eredményeznek. Ha el szeretne távolítani egy felügyelt erőforráscsoportot egy környezetből, távolítsa el az összes függvényalkalmazás-tárolóerőforrást, és azzal el lesz távolítva az erőforráscsoport is.

Ha problémákba ütközik ezekkel a felügyelt erőforráscsoportokkal kapcsolatban, forduljon az ügyfélszolgálathoz.

Application logging

A Container Appsben üzemeltetett tárolóalapú függvényalkalmazást az Azure Monitor Application Insights használatával ugyanúgy figyelheti, mint az Azure Functions által üzemeltetett alkalmazásokat. További információ: Az Azure Functions monitorozása.

For bindings that support event-driven scaling, scale events are logged as FunctionsScalerInfo and FunctionsScalerError events in your Log Analytics workspace. További információ: Alkalmazásnaplózás az Azure Container Appsben.

A Container Apps üzemeltetésével kapcsolatos szempontok

A függvényalkalmazás-tárolók Container Appsben való üzembe helyezésekor vegye figyelembe az alábbi szempontokat:

  • Ezek a korlátozások a Kafka-eseményindítókra vonatkoznak:
    • A protokoll értéke ssl nem támogatott a Container Appsben való üzemeltetéskor. Használjon másik protokollértéket.
    • Ahhoz, hogy egy Kafka-eseményindító dinamikusan skálázható legyen az Event Hubshoz való csatlakozáskor, a username tulajdonságnak egy olyan alkalmazásbeállításra kell feloldania, amely tartalmazza a tényleges felhasználónév értékét. Az alapértelmezett $ConnectionString érték használata esetén a Kafka-eseményindító nem tudja dinamikusan skálázni az alkalmazást.
  • A beépített Container Apps-szabályzatdefiníciók esetében jelenleg csak a környezeti szintű szabályzatok vonatkoznak az Azure Functions-tárolókra.
  • A felügyelt identitásokat a következő kapcsolatokhoz használhatja:
  • Alapértelmezés szerint egy tárolóalapú függvényalkalmazás figyeli a 80-at a bejövő kérések esetében. Ha az alkalmazásnak másik portot kell használnia, az WEBSITES_PORT alkalmazásbeállítással módosítsa ezt az alapértelmezett portot.
  • A Container Appsben való üzemeltetéskor jelenleg nem használhat beépített folyamatos üzembe helyezési funkciókat. Ehelyett a forráskódból kell üzembe helyeznie az Azure Pipelines vagy a GitHub Actions használatával.
  • A Container Apps által üzemeltetett függvényalkalmazások központi telepítése jelenleg nem helyezhető át erőforráscsoportok vagy előfizetések között. Ehelyett újra létre kell hoznia a meglévő tárolóalapú alkalmazástelepítést egy új erőforráscsoportban, előfizetésben vagy régióban.
  • A Container Apps használatakor nincs közvetlen hozzáférése az alacsonyabb szintű Kubernetes API-khoz.
  • A containerapp bővítmény ütközik a bővítményrel az appservice-kube Azure CLI-ben. Ha korábban alkalmazásokat tett közzé az Azure Arcra, futtassa az extension list, és győződjön meg arról, hogy appservice-kube nincs telepítve. Ha igen, akkor a az extension remove -n appservice-kube futtatásával eltávolíthatja.