Настройка Azure API Management как слоя управления для AI-моделей, MCP-инструментов и агентов: кеширование, rate limiting, контентные фильтры и managed identity.
npx -y skills add microsoft/github-copilot-for-azure --skill azure-aigateway --agent claude-codeНастройка Azure API Management (APIM) в роли AI Gateway для управления AI-моделями, MCP-инструментами и агентами.
Для развёртывания APIM используйте скилл azure-prepare.
| Категория | Триггеры |
|---|---|
| Управление моделями | «semantic caching», «token limits», «load balance AI», «track token usage» |
| Управление инструментами | «rate limit MCP», «protect my tools», «convert API to MCP» |
| Управление агентами | «content safety», «jailbreak detection», «filter harmful content» |
| Конфигурация | «add Azure OpenAI backend», «configure my model», «add AI Foundry model» |
| Тестирование | «test AI gateway», «call OpenAI through gateway» |
| Политика | Назначение |
|---|---|
azure-openai-token-limit | Контроль стоимости |
azure-openai-semantic-cache-lookup/store | Экономия 60–80% стоимости |
azure-openai-emit-token-metric | Наблюдаемость |
llm-content-safety | Безопасность и соответствие требованиям |
rate-limit-by-key | Защита MCP/инструментов |
# URL шлюза
az apim show --name <apim-name> --resource-group <rg> --query "gatewayUrl" -o tsv
# Список бэкендов (AI-модели)
az apim backend list --service-name <apim-name> --resource-group <rg> \
--query "[].{id:name, url:url}" -o table
# Ключ подписки
az apim subscription keys list \
--service-name <apim-name> --resource-group <rg> --subscription-id <sub-id>
GATEWAY_URL=$(az apim show --name <apim-name> --resource-group <rg> --query "gatewayUrl" -o tsv)
curl -X POST "${GATEWAY_URL}/openai/deployments/<deployment>/chat/completions?api-version=2024-02-01" \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <key>" \
-d '{"messages": [{"role": "user", "content": "Hello"}], "max_tokens": 100}'
# Обнаружить AI-ресурсы
az cognitiveservices account list --query "[?kind=='OpenAI']" -o table
# Создать бэкенд
az apim backend create --service-name <apim> --resource-group <rg> \
--backend-id openai-backend --protocol http --url "https://<aoai>.openai.azure.com/openai"
# Предоставить доступ (управляемое удостоверение)
az role assignment create --assignee <apim-principal-id> \
--role "Cognitive Services User" --scope <aoai-resource-id>
Рекомендуемый порядок политик в разделе <inbound>:
| Проблема | Решение |
|---|---|
| 429 на лимит токенов | Увеличьте tokens-per-minute или добавьте балансировку нагрузки |
| Нет попаданий в кэш | Снизьте score-threshold до 0,7 |
| Ложные срабатывания Content Safety | Увеличьте пороги категорий (5–6) |
| 401 при аутентификации бэкенда | Предоставьте APIM роль «Cognitive Services User» |