Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, Model Bağlam Protokolü (MCP) sunucusunu kullanarak Azure Container Apps dinamik oturumlarında bir kabuk ortamının nasıl dağıtılacağı ve bunlarla nasıl etkileşim kurulduğunu gösterilmektedir.
Bu öğreticide siz:
- MCP sunucusu etkinleştirilmiş bir kabuk oturumu havuzu oluşturun.
- MCP sunucu uç noktasını ve kimlik bilgilerini ayarlama
- JSON-RPC kullanarak kabuk komutlarını uzaktan yürütme
Önkoşullar
Bu öğreticiye başlamadan önce aşağıdaki kaynaklara ihtiyacınız vardır.
| Gereksinim | Description |
|---|---|
| Azure hesabı | Etkin aboneliği olan bir Azure hesabına ihtiyacınız vardır. Eğer bir hesabınız yoksa ücretsiz olarak bir tane oluşturabilirsiniz. |
| Azure Komut Satırı Arayüzü (Azure CLI) | Azure CLI'yi yükleyin. |
Kurulum
En son güncelleştirmelerle Azure CLI'yi hazırlayarak ve Azure'da oturum açarak başlayın.
Azure CLI'yi en son sürüme güncelleştirin.
az upgradeKaynak sağlayıcısını
Microsoft.Appkaydedin.az provider register --namespace Microsoft.AppAzure Container Apps CLI uzantısının en son sürümünü yükleyin.
az extension add --name containerapp --allow-preview true --upgradeAzure'da oturum açın.
az loginAzure abonelik kimliğinizi sorgulayıp değeri bir değişken olarak ayarlayın.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)Bu yordamda kullanılan değişkenleri ayarlayın.
Aşağıdaki komutu çalıştırmadan önce, ile çevrelenen
<>yer tutucuları kendi değerlerinizle değiştirdiğinizden emin olun.RESOURCE_GROUP=<RESOURCE_GROUP_NAME> SESSION_POOL_NAME=<SESSION_POOL_NAME> LOCATION=<LOCATION>Aşağıdaki adımlarda kaynakları oluşturmak için bu değişkenleri kullanırsınız.
Kaynak grubunu oluşturmak için kullanmak istediğiniz aboneliği ayarlayın.
az account set -s $SUBSCRIPTION_IDBir kaynak grubu oluşturun.
az group create --name $RESOURCE_GROUP --location $LOCATION
MCP sunucusuyla kabuk oturumu havuzu oluşturma
MCP sunucusunun etkin olduğu bir kabuk oturumu havuzu oluşturmak için ARM şablonunu kullanın.
adlı
deploy.jsonbir dağıtım şablonu dosyası oluşturun:{ "$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-02-02-preview", "name": "[parameters('name')]", "location": "[parameters('location')]", "properties": { "poolManagementType": "Dynamic", "containerType": "Shell", # Set the "containerType" property to "Shell" "scaleConfiguration": { "maxConcurrentSessions": 5 }, "sessionNetworkConfiguration": { "status": "EgressEnabled" }, "dynamicPoolConfiguration": { "lifecycleConfiguration": { "lifecycleType": "Timed", "coolDownPeriodInSeconds": 300 } }, "mcpServerSettings": { "isMCPServerEnabled": true # Add the "mcpServerSettings" section to enable the MCP server } } } ] }ARM şablonunu dağıtma.
az deployment group create \ --resource-group $RESOURCE_GROUP \ --template-file deploy.json \ --parameters name=$SESSION_POOL_NAME location=$LOCATION
MCP sunucu uç noktasını alma
Dağıtılan oturum havuzundan MCP sunucu uç noktasını alın.
MCP_ENDPOINT=$(az rest --method GET --uri "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/sessionPools/$SESSION_POOL_NAME?api-version=2025-02-02-preview" --query "properties.mcpServerSettings.mcpServerEndpoint" -o tsv)
MCP sunucusu kimlik bilgilerini alma
MCP sunucusu için API kimlik bilgilerini isteme.
API_KEY=$(az rest --method POST --uri "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/sessionPools/$SESSION_POOL_NAME/fetchMCPServerCredentials?api-version=2025-02-02-preview" --query "apiKey" -o tsv)
MCP sunucusunu başlatma
JSON-RPC kullanarak MCP sunucu bağlantısını başlatın.
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" }'
protocolVersion ve serverInfo içeren bir yanıt görmelisiniz.
Kabuk ortamını başlatma
Oturum havuzunda yeni bir kabuk ortamı oluşturun.
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
Sonraki komutlarda kullanmak üzere yanıttan ortam kimliğini ayıklayın.
Shell komutlarını çalıştır
Komutları uzak kabuk ortamınızda çalıştırın.
<ENVIRONMENT_ID> ifadesini önceki adımdan döndürülen kimlikle değiştirin.
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": "runShellCommandInRemoteEnvironment",
"arguments": {
"environmentId": "<ENVIRONMENT_ID>",
"shellCommand": "echo Hello from Azure Container Apps Shell Session!"
}
}
}'
Komut sonuçlarını stdout bölümünde içeren bir çıktı görmeniz gerekir.
Kaynakları temizle
Bu öğreticide oluşturulan kaynakların Azure faturanız üzerinde etkisi vardır. Bu hizmetleri uzun süreli kullanmayacaksanız, bu öğreticide oluşturulan her şeyi kaldırmak için aşağıdaki komutu çalıştırın.
az group delete --resource-group $RESOURCE_GROUP