Docker Compose üzembe helyezése ügynökök számára az Azure Container Apps előzetes verziójában

Ez a cikk bemutatja, hogyan helyezhet üzembe alkalmazásokat az Azure Container Apps szolgáltatásba a Docker Compose használatával. Ez a funkció megtartja a helyileg már használt levélírási fájlt, és lehetővé teszi a Container Appsben való üzembe helyezését. A az-cli tárolóalkalmazás-bővítmény ezután lefordítja a compose fájlt Azure Container App-alkalmazásokká, és kezeli az identitásokat, a skálázást és a modell életciklusát.

Ebből a cikkből megtudhatja, hogyan:

  • Az Azure Container Appsben létrehozott ügynökspecifikus erőforrások ismertetése.
  • Tekintse át az Azure Container Appshez igazított minta-összeállítási fájlokat.
  • Helyezzen üzembe egy levélírási fájlt az Azure CLI-vel, és ellenőrizze a környezetet.
  • Problémák elhárítása és az aktuális korlátozások ismertetése.

Fontos

Az Azure Container Apps ügynökei számára a Docker Compose támogatás nyilvános előzetes verzióban érhető el. A funkciók és a viselkedés értesítés nélkül változhat.

Előfeltételek

  • Az Azure CLI 2.70.0 vagy újabb verziója, a/az containerapp bővítmény 1.2.0b5+ai.compose verziójával vagy annál újabbal telepítve (lásd a telepítési utasításokat).
  • Azure-előfizetés Azure Container Apps-erőforrások létrehozásához szükséges engedélyekkel.
  • Egy Docker Compose fájl ügynökökhöz. A docker/compose-for-agents adattár mintáiból indulhat ki.
  • Docker-telepítés (helyi buildhez)
  • Üzembe helyezésre kész Azure Container Apps-környezet. Hozzon létre egyet az containerapp env create, ha még nem rendelkezik környezettel. A modellek GPU-n való üzembe helyezéséhez az alábbi helyek egyikét kell kiválasztania. A cikkben használt minták feltételezik a kiszolgáló nélküli GPU használatát.

Üzembehelyezési architektúra

Futtatáskor az containerapp compose createa parancssori felület lefordítja az ügynökközpontú összeállítási elemeket a megfelelő Azure Container Apps-erőforrásokra. A Compose for Agents két kritikus összetevője a modellfuttató és az MCP-átjáró, amely a modell és az MCP-eszközök elérhetővé tételéért felelős az alkalmazás számára.

Modellkörnyezeti protokoll (MCP) eszközkészlete

Az Azure Container Apps a Docker MCP-átjárójának egy változatát futtatja saját tárolóalkalmazásként. Rendszer által hozzárendelt felügyelt identitást használ az MCP eszköztárolók dinamikus hozzáadásához vagy eltávolításához a környezetben. Ez a beállítás külön tárolóként jelenik meg az mcp-gateway alkalmazás alatt. Az MCP eszközökkel történő eszközkapcsolat kizárólag a hálózatra korlátozódik. A Stdio MCP-kiszolgálók úgy vannak kialakítva, hogy SSE-alapú MCP-kiszolgálóként fussanak az Azure Container Appsen. Az Azure Container Apps-en futó Docker for Agents jelenleg a következő Stdio MCP-kiszolgálókat támogatja: AppSignal, BigQuery, Confluence, DuckDuckGo, Fetch, Filesystem, Git, Google Drive, Jira, MongoDB, MySQL, Notion, Playwright, PostgreSQL, SequentialThinking, Slack, SQLite, Supabase, Time, Twist.

Models

A modellek a Docker modellfuttatóján keresztül lesznek kiszolgálva. Az Azure Container Appsben a modellalkalmazás részeként üzembe helyezett modellfuttató konfigurációs tároló kezeli a konfigurációt. Ez biztosítja a megfelelő modell lekérését és konfigurálását, mielőtt az alkalmazás használhatja. A konfigurációt a rendszer a változón keresztül továbbítja a modellkonfigurációs tárolónak MODEL_CONFIG .

Fájlok írása

Ugyanazt a levélírási fájlt használhatja a helyi fejlesztéshez és üzembe helyezéshez. E cél elérése érdekében adja hozzá az x-azure-deployment irányelvet. A Docker Compose figyelmen kívül hagyja ezt az irányelvet, de az Azure Container Apps üzembe helyezése során használja. Íme néhány használatra kész minta , amelyeket áttekinthet. Ezek a minták közös szakaszokkal rendelkeznek mind a kiszolgáló nélküli GPU esetében, mind az mcp-gateway Azure Container Apps-verziójának üzembe helyezéséhez.

services:
  ...

models:
  gemma:
    model: ai/gemma3-qat
	# run the models on serverless GPU workload profile
    x-azure-deployment:
      workloadProfiles:
        workloadProfileType: Consumption-GPU-NC8as-T4
serivces:
	mcp-gateway:
	...
	# use the Azure Container Apps flavored image for the mcp-gateway
	x-azure-deployment:
	  image: acateam.azurecr.io/preview-ai-compose/mcp-gateway:latest
  ...

models:
  ...

További x-azure-deployment lehetőségek:

x-azure-deployment:
  image: ghcr.io/example/app:custom-build
  resources:
    cpu: 1.0
    memory: 2
  scale:
    maxReplicas: 1
    minReplicas: 1
  ingress:
    external: true
    allowInsecure: false

Telepítés és használat

Kövesse az alábbi lépéseket a környezet beállításához és az alkalmazások üzembe helyezéséhez a meglévő levélírási fájlok használatával.

A Compose telepítése ügynökökhöz

Ebben a szakaszban ez a funkció két csomag telepítését igényli. A telepítés után ezek a csomagok biztosítják a magyarázható képességeket. Kövesse az alábbi lépéseket:

# remove the existing container apps extension
az extension remove --name containerapp

# install the pycomposefile module and the preview extension for containerapps
pip install "https://raw.githubusercontent.com/microsoft/azure-container-apps/main/preview/ai-compose/az-extension/release-1.2.0b5+ai.compose-py2.py3-none-any/pycomposefile-0.0.32-py3-none-any.whl"
az extension add --source "https://raw.githubusercontent.com/microsoft/azure-container-apps/main/preview/ai-compose/az-extension/release-1.2.0b5+ai.compose-py2.py3-none-any/containerapp-1.2.0b5+ai.compose-py2.py3-none-any.whl" --yes

# check of the extension is installed (should show 1.2.0b5+ai.compose)
az extension show --name containerapp --query version -o tsv
# you are ready to use the extension
az containerapp compose --help

A Compose használata ügynökök számára

Kezdje az itt található egyik előkészített fájllal. Ezután kövesse az utasításokat:

# define the needed variables
export LOCATION=westus2
export RESOURCE_GROUP=rg-compose-for-agents
export ENV_NAME=ai-app-env
export COMPOSE=compose-aca.yml

# create the resource group
az group create --name $RESOURCE_GROUP   --location $LOCATION && 

# create the Azure Container Apps environment
az containerapp env create \
			--name $ENV_NAME \
			--resource-group $RESOURCE_GROUP \
			--location $LOCATION

# deploy your compose file
az containerapp compose create \
			--compose-file-path $COMPOSE \
			--resource-group $RESOURCE_GROUP \
			--environment $ENV_NAME

Az ügynök beállításainak alapértelmezett beállításai

Az explicit ügynökbeállítások nélkül létrehozott alkalmazások a következő alapértelmezett értékeket kapják:

  • DiscoveryMode = Auto, amely automatikusan észleli az ügynök képességeit és függőségeit.
  • IsAgent = false, amely azt jelzi, hogy az alkalmazás csak akkor működik ügynökként, ha kifejezetten így van konfigurálva.

Ezek az alapértelmezett értékek konzisztens viselkedést biztosítanak a környezet összes tárolóalkalmazásához.

Eltávolítás és visszaállítás

A tárolóalkalmazás-bővítmény stabil kiadására való visszaváltás:

# remove the current extension
az extension remove --name containerapp
# reinstall and confirm stable install
az extension install --name containerapp
az extension show --name containerapp --query version -o tsv

Ismert problémák és hibaelhárítás

  • Időnkénti kép rendelkezésre állási késések: Előfordulhat, hogy egy helyileg létrehozott rendszerkép nem érhető el azonnal a platformon. Telepítse újra vagy indítsa újra az alkalmazást a probléma megoldásához. A hiba a következőképpen néz ki:

    Failed to provision revision for container app 'app'. Error details: The following field(s) are either invalid or missing. Field 'template.containers.app.image' is invalid with details: 'Invalid value: "acateam.azurecr.io/preview-ai-compose/samples/spring-ai-app:latest": GET https:: MANIFEST_UNKNOWN: manifest tagged by "latest" is not found; map[Tag:latest]'
    
  • Felügyelt identitással kapcsolatos problémák: Újratelepítés során megjelenhet ez az üzenet. Ez a hiba azért fordul elő, mert az identitás újra van rendelve az mcp-gatewayhez. Hagyja figyelmen kívül az üzenetet, ha az átjáró megfelelően működik.

    ⚠️  Could not automatically assign role: AADSTS53003: Access has been blocked by Conditional Access policies. The access policy does not allow token issuance.
    
  • Nem elérhető átjáró URL-címei: Ellenőrizze, hogy az átjáró gazdagépneve kihagyja-e a portszámot, és megegyezik-e a beszúrt MCP_GATEWAY_URLértékkel. Ne állítsa be manuálisan az üzembe helyezés során eltávolított portokat.

  • MCP-átjáróeszköz: Ellenőrizze, hogy az mcp-gateway alkalmazás több tárolót is üzembe helyezett-e. Ha igen, a dolgoknak megfelelően kell működnie.

  • Ki nem helyezett modellek: Tekintse át az model-runner-config alkalmazás tárolónaplóit, és ellenőrizze, models hogy vannak-e hitelesítési problémák a modellek lekérésekor. Az elérhető modelleket lekérhetjük, ha futtatjuk a curl http://YOUR_MODELS_ENDPOINT/models parancsot.

  • Jelentéskészítési problémák: A bővítménysel kapcsolatos problémák jelentése a hivatalos Container Apps GitHubon.

Előzetes verzióra vonatkozó korlátozások

Figyelmeztetés

Ezek a korlátozások a nyilvános előzetes verzióban érvényesek, és az általános rendelkezésre állás előtt változhatnak.

  • Kompozíciós fájlonként csak egy SSE-alapú MCP-burkoló támogatott.
  • A kötetek és hálózatok jelenleg nem támogatottak.
  • A naplóüzenetek nem mindig helyesek.