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.
Fontos
A dinamikus munkamenetek platform által felügyelt MCP-kiszolgálója előzetes verzióban érhető el. Az API-verzió 2025-02-02-preview és mcpServerSettings tulajdonságai változhatnak.
Ez az oktatóanyag bemutatja, hogyan hozhat létre munkamenetkészletet a platform által felügyelt MCP-kiszolgálóval, hogyan csatlakozhat hozzá, és hogyan hajthatja végre távolról a Python-kódot.
Az önálló MCP-kiszolgáló oktatóanyagaitól eltérően nem ír vagy helyez üzembe MCP-kiszolgálókódot. A platform beépített eszközöket biztosít a Python-munkamenetkészletekhez:
| Eszköz | Description |
|---|---|
launchShell |
Új környezetet hoz létre, és visszaad egy environmentId |
runPythonCodeInRemoteEnvironment |
Python-kód végrehajtása meglévő környezetben |
runShellCommandInRemoteEnvironment |
Létező környezetben végrehajt egy shell parancsot |
Ebben az útmutatóban Ön:
- Python-munkamenetkészlet létrehozása engedélyezett MCP-kiszolgálóval
- Az MCP-végpont és az API-kulcs lekérése
- Inicializálja az MCP-kapcsolatot, és hajtsa végre a Python-kódot JSON-RPC
- Az MCP-kiszolgáló csatlakoztatása a GitHub Copilothoz a VS Code-ban
Előfeltételek
| Követelmény | Description |
|---|---|
| Azure-fiók | Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egyet ingyen. |
| Azure CLI (Az Azure parancssori felülete) | Telepítse az Azure CLI-t. |
| göndörít | curl (a legtöbb Linux és macOS rendszeren előre telepítve). |
| jq | jq Az API-válaszok elemzésére használt JSON-processzor. |
| VS Code | Visual Studio Code a GitHub Copilot bővítménnyel (a Copilot integrációs szakaszához). |
Beállítás
Frissítse az Azure CLI-t, és telepítse a Container Apps bővítményt:
az upgrade az provider register --namespace Microsoft.App az extension add --name containerapp --allow-preview true --upgradeJelentkezzen be, és állítsa be az előfizetését:
az login SUBSCRIPTION_ID=$(az account show --query id --output tsv) az account set -s $SUBSCRIPTION_IDVáltozók beállítása ehhez az oktatóanyaghoz. Cserélje le a helyőrzőket az Ön által megadott értékekre:
RESOURCE_GROUP=<RESOURCE_GROUP_NAME> SESSION_POOL_NAME=<SESSION_POOL_NAME> LOCATION=<LOCATION>Erőforráscsoport létrehozása:
az group create --name $RESOURCE_GROUP --location $LOCATION
Python-munkamenetkészlet létrehozása MCP-kiszolgálóval
Munkamenetkészlet üzembe helyezése ARM-sablonnal, amelyen engedélyezve van az MCP.
Hozzon létre egy fájlt:
deploy.json{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "name": { "type": "String" }, "location": { "type": "String" } }, "resources": [ { "type": "Microsoft.App/sessionPools", "apiVersion": "2025-02-02-preview", "name": "[parameters('name')]", "location": "[parameters('location')]", "properties": { "poolManagementType": "Dynamic", "containerType": "PythonLTS", "scaleConfiguration": { "maxConcurrentSessions": 5 }, "sessionNetworkConfiguration": { "status": "EgressEnabled" }, "dynamicPoolConfiguration": { "lifecycleConfiguration": { "lifecycleType": "Timed", "coolDownPeriodInSeconds": 300 } }, "mcpServerSettings": { "isMCPServerEnabled": true } } } ] }Megjegyzés:
A sablon főbb tulajdonságai:
-
containerType: "PythonLTS": Python-futtatókörnyezettel hoz létre munkameneteket. -
mcpServerSettings.isMCPServerEnabled: true: Engedélyezi a platform által felügyelt MCP-végpontot. -
coolDownPeriodInSeconds: 300: A munkamenetek 5 perc inaktivitás után megsemmisülnek.
-
A sablon üzembe helyezése:
Arm-sablon használatával hozzon létre egy Python-munkamenetkészletet, amelyen engedélyezve van az MCP-kiszolgáló.
Hozzon létre egy központi telepítési sablonfájlt a következő néven
deploy.json:{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "name": { "type": "String" }, "location": { "type": "String" } }, "resources": [ { "type": "Microsoft.App/sessionPools", "apiVersion": "2025-10-02-preview", "name": "[parameters('name')]", "location": "[parameters('location')]", "properties": { "poolManagementType": "Dynamic", "containerType": "PythonLTS", # Set the "containerType" property to "PythonLTS" "scaleConfiguration": { "maxConcurrentSessions": 5 }, "sessionNetworkConfiguration": { "status": "EgressEnabled" }, "dynamicPoolConfiguration": { "lifecycleConfiguration": { "lifecycleType": "Timed", "coolDownPeriodInSeconds": 300 } }, "mcpServerSettings": { "isMCPServerEnabled": true # Add the "mcpServerSettings" section to enable the MCP server } } } ] }Telepítse az ARM-sablont.
az deployment group create \ --resource-group $RESOURCE_GROUP \ --template-file deploy.json \ --parameters name=$SESSION_POOL_NAME location=$LOCATION
Az MCP-kiszolgáló végpontjának lekérése
Az üzembe helyezés után kérje le a munkamenet-készlet MCP-végpontjának URL-címét.
MCP_ENDPOINT=$(az rest --method GET --uri "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/sessionPools/$SESSION_POOL_NAME" --uri-parameters api-version=2025-10-02-preview --query "properties.mcpServerSettings.mcpServerEndpoint" -o tsv)
MCP-kiszolgáló hitelesítő adatainak lekérése
A platform által felügyelt MCP-kiszolgáló az API-kulcs hitelesítését használja a x-ms-apikey fejlécen keresztül. Ez a hitelesítési módszer eltér a szokásos munkamenetkészlet-kezelési API-k által használt tulajdonosi jogkivonatos hitelesítéstől.
API_KEY=$(az rest --method POST --uri "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/sessionPools/$SESSION_POOL_NAME/fetchMCPServerCredentials" --uri-parameters api-version=2025-10-02-preview --query "apiKey" -o tsv)
Figyelmeztetés
Kezelje az API-kulcsot titkos kódként. Ne commitolja a verziókezelésbe, és ne ossza meg nyilvánosan. A kulcs hitelesíti az ÖSSZES MCP-eszközhívást a munkamenetkészleten.
Az MCP-kiszolgáló inicializálása
Küldje el a initialize JSON-RPC kérést az MCP-kapcsolat létrehozásához:
curl -sS -X POST "$MCP_ENDPOINT" \
-H "Content-Type: application/json" \
-H "x-ms-apikey: $API_KEY" \
-d '{ "jsonrpc": "2.0", "id": "1", "method": "initialize" }'
Olyan választ kell látnia, amely a következőket tartalmazza:
-
protocolVersion:2025-03-26 -
serverInfo.name:Microsoft Container Apps MCP Server -
capabilities.tools:{ "call": true, "list": true }
Python-környezet indítása
Új Python-környezet létrehozása:
ENVIRONMENT_RESPONSE=$(curl -sS -X POST "$MCP_ENDPOINT" \
-H "Content-Type: application/json" \
-H "x-ms-apikey: $API_KEY" \
-d '{ "jsonrpc": "2.0", "id": "2", "method": "tools/call", "params": { "name": "launchShell", "arguments": {} } }')
echo $ENVIRONMENT_RESPONSE
Bontsa ki a environmentId mezőből a structuredContent elemet a válaszban. Az összes további parancshoz szüksége lesz erre az azonosítóra.
ENVIRONMENT_ID=$(echo $ENVIRONMENT_RESPONSE | jq -r '.result.structuredContent.environmentId')
echo $ENVIRONMENT_ID
Megjegyzés:
Az launchShell eszköz létrehoz egy egyedi környezeti azonosítót. A tényleges munkamenet "lazily" lesz lefoglalva. Az első parancs végrehajtásakor a munkamenetkészlet egy Hyper-V-izolált tárolót rendel hozzá a kezeléshez.
Python-parancsok végrehajtása
A Python-kód távoli környezetben való futtatásához használja az $ENVIRONMENT_ID előző lépésben megadottt.
curl -sS -X POST "$MCP_ENDPOINT" \
-H "Content-Type: application/json" \
-H "x-ms-apikey: $API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": "3",
"method": "tools/call",
"params": {
"name": "runPythonCodeInRemoteEnvironment",
"arguments": {
"environmentId": "'"$ENVIRONMENT_ID"'",
"pythonCode": "import sys; print(f\"Python {sys.version}\")"
}
}
}'
A válasz tartalmazza a parancsok eredményeit a stdout mezőben belül structuredContent.
Próbáljon ki egy összetettebb példát:
curl -sS -X POST "$MCP_ENDPOINT" \
-H "Content-Type: application/json" \
-H "x-ms-apikey: $API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": "4",
"method": "tools/call",
"params": {
"name": "runPythonCodeInRemoteEnvironment",
"arguments": {
"environmentId": "'"$ENVIRONMENT_ID"'",
"pythonCode": "import math\nresults = {n: math.factorial(n) for n in range(1, 11)}\nfor k, v in results.items():\n print(f\"{k}! = {v}\")"
}
}
}'
Csatlakozás a GitHub Copilothoz a VS Code-ban
A munkamenetkészlet MCP-kiszolgálóját csatlakoztathatja a GitHub Copilothoz, hogy természetes nyelvű felületet használjon a kódvégrehajtási környezethez.
Hozz létre
.vscode/mcp.jsona projektedben.{ "servers": { "aca-python-sessions": { "type": "http", "url": "<MCP_ENDPOINT>", "headers": { "x-ms-apikey": "<API_KEY>" } } } }Cserélje le a
<MCP_ENDPOINT>és<API_KEY>értékeket a korábbi lépésekből származó értékekkel.Figyelmeztetés
Ne véglegesítse az MCP API-kulcsokat a forrásvezérléshez. Használjon környezeti változókat vagy titkos kulcskezelőt az éles környezetben. Adja hozzá
.vscode/mcp.jsona.gitignore-hoz/-hez.Nyissa meg a VS Code-ot, majd nyissa meg a Copilot-csevegéstügynök módban.
Az Ellenőrzés
aca-python-sessionsmegjelenik az Eszközök listában.Tesztelés a következő kérésekkel:
- "Python-környezet indítása és az első 20 Fibonacci-szám kiszámítása"
- "Olyan Python-szkript futtatása, amely lekéri https://api.github.com és kinyomtatja a válaszfejléceket"
Erőforrások tisztítása
Az oktatóanyag befejezésekor távolítsa el a létrehozott erőforrásokat, hogy elkerülje a díjak felmerülését.
az group delete --resource-group $RESOURCE_GROUP