- Дата публикации
Как запустить Claude Code через Microsoft Foundry в VS Code: полный практический гид
Что нового
Anthropic вывела Claude Code в экосистему Azure: теперь кодовый ассистент Claude работает не только через публичное API Anthropic, но и через Microsoft Foundry.
Ключевые изменения по сравнению с прямым подключением к Anthropic:
- Данные остаются в Azure‑тенанте: промпты и ответы проходят через Foundry и хранятся в рамках вашей подписки Azure.
- Аутентификация через Entra ID: не нужны API‑ключи Anthropic, права доступа регулируются через Azure RBAC.
- Работа в приватных сетях: поддержка VNet и Private Endpoint, можно не выпускать трафик в интернет.
- Единый биллинг и квоты: использование Claude Code попадает в счёт Azure и отображается в мониторинге Foundry.
- Один и тот же CLI и VS Code‑расширение: вы используете официальный Claude Code CLI и плагин для VS Code, а под капотом — Microsoft Foundry.
Claude Code в этой схеме использует три отдельных развёртывания моделей Claude 4.x:
- claude‑sonnet‑4‑6 — основная «рабочая лошадка» для большинства задач.
- claude‑haiku‑4‑5 — быстрые ответы, короткие правки, чтение файлов.
- claude‑opus‑4‑6 — сложные задачи и длинные цепочки рассуждений.
Разворачивать обязательно только Sonnet, Haiku и Opus можно добавить позже — Claude Code сам распределяет запросы по ролям.
Как это работает
Архитектура
Схема простая:
- Вы разворачиваете в Microsoft Foundry три модели Anthropic Claude 4.x (Sonnet, Haiku, Opus) как Global Standard‑деплойменты.
- Даёте себе две роли на ресурс Foundry:
- Cognitive Services User (ID:
a97b65f3-24c7-4388-baec-2e87135dc908) — доступ к вызову моделей. - Foundry User (ранее Azure AI User, ID:
53ca6127-db72-4b80-b1b0-d745d6d5456d) — нативные права Foundry.
- Cognitive Services User (ID:
- Логинитесь в нужный Azure‑тенант через
az login. - Включаете режим Foundry в CLI и VS Code‑расширении Claude Code через переменные окружения.
- Claude Code отправляет запросы не в публичное API Anthropic, а в endpoint Azure Cognitive Services вашего ресурса Foundry.
Какие модели нужны
Claude Code ожидает по одной модели для каждой «роли»:
| Роль | Имя деплоймента по умолчанию | Для чего используется |
|--------------------|------------------------------|--------------------------------------------|
| Primary | claude-sonnet-4-6 | Основное программирование, баланс всего |
| Fast | claude-haiku-4-5 | Быстрые ответы, чтение файлов, мелкие правки |
| Extended thinking | claude-opus-4-6 | Сложные задачи, глубокое проектирование |
Если для роли нет развернутой модели, Claude Code может либо откатиться на другую модель, либо просто не выполнить задачу.
Где живут настройки
Есть две ключевые переменные:
CLAUDE_CODE_USE_FOUNDRY=1— включает режим работы через Microsoft Foundry.ANTHROPIC_FOUNDRY_RESOURCE=<имя-ресурса>— указывает название ресурса Foundry в Azure.
Альтернатива — ANTHROPIC_FOUNDRY_BASE_URL, если вы используете кастомный домен или Private Endpoint. Эти две переменные нельзя задавать одновременно: Foundry возвращает ошибку API Error: baseURL and resource are mutually exclusive.
В VS Code переменные передаются не через системное окружение, а через настройку claudeCode.environmentVariables в settings.json — это массив объектов { "name": "...", "value": "..." }.
Как проходит аутентификация
Claude Code не хранит и не запрашивает ключи. Он опирается на Azure CLI и Entra ID:
- Вы выполняете
az login --tenant <tenant>и выбираете подписку. - Azure CLI получает токен для нужного тенанта.
- Claude Code CLI и VS Code‑расширение используют этот токен через стандартные механизмы Azure (ChainedTokenCredential).
Если VS Code запущен не из той же оболочки, где вы делали az login, расширение не видит токен и падает с ошибкой Failed to get token from azureADTokenProvider.
Что это значит для вас
Когда это реально полезно
-
Корпоративная разработка на Azure
- Вы уже используете Azure, у вас есть требования по хранению данных внутри тенанта.
- Нужен кодовый ассистент уровня Claude 4, но без API‑ключей и без вывода трафика наружу.
- Важен централизованный контроль доступов через Entra ID и Azure RBAC.
-
Команды с приватной сетью
- У вас VNet, Private Endpoint, выход в интернет ограничен.
- Стандартный доступ к Anthropic может быть заблокирован, а Foundry доступен.
-
Финансы и отчётность
- Удобнее видеть расходы на Claude Code в одном счёте Azure.
- Нужен мониторинг токенов и квот через Foundry → Operate → Metrics / Quotas.
-
Единая среда для команды
- Все разработчики используют один и тот же набор моделей (Sonnet/Haiku/Opus) через Foundry.
- Настройки можно задокументировать в README и быстро онбордить новых людей.
Где это может не зайти
- Нет Azure‑подписки с оплатой. Нужна подписка Azure с pay‑as‑you‑go и ресурс Foundry в поддерживаемом регионе. Без этого схема не заработает.
- Вы работаете из России. Доступ к Azure и Microsoft Foundry в российских сетях может быть ограничен юридически или технически. Нужен рабочий доступ к Azure, часто через VPN или зарубежную инфраструктуру компании.
- Нужен «просто ассистент» без Azure. Если у вас нет инфраструктуры Azure и требований по корпоративному контролю, проще использовать Claude Code напрямую через Anthropic.
Практический сценарий использования
- Создайте файл
CLAUDE.mdв корне репозитория с описанием стека, конвенций и команд запуска. - Разбейте правила по областям в
.claude/rules/*.md— тесты, безопасность, стилистика. - Запустите Claude Code в VS Code и попросите: «Summarize the structure of this project». Ассистент подхватит контекст проекта и
CLAUDE.mdи начнёт работать как полноценный тиммейт.
Место на рынке
По сути, это не отдельный конкурент GPT‑4o или других моделей, а способ запустить те же Claude 4 (Sonnet, Haiku, Opus) через инфраструктуру Azure.
По параметрам это выглядит так:
- Качество. Claude Sonnet 4 и Opus 4 сегодня относятся к топовым кодовым ассистентам по качеству генерации и рефакторинга кода. Этот гид использует именно их (
claude-sonnet-4-6,claude-haiku-4-5,claude-opus-4-6). - Скорость. Haiku 4‑5 предназначен для быстрых ответов и чтения файлов, Sonnet — баланс скорости и качества, Opus — для сложных задач и может отвечать медленнее. Конкретные миллисекунды или TPS здесь не приводятся, но логика распределения простая: Haiku для скорости, Opus для глубины.
- Цена. Финальная стоимость зависит от тарифов Azure Cognitive Services и выбранных квот в Foundry. Чётких цифр в материале нет, но оплата идёт через Azure, а не через Anthropic напрямую.
- Интеграция. Главное отличие от прямого доступа к Anthropic — Entra ID, RBAC, Private Endpoint, мониторинг и биллинг в Azure.
Если вам нужен максимальный контроль и соответствие корпоративным политикам, связка Claude Code + Microsoft Foundry закрывает эту задачу лучше, чем прямой вызов API Anthropic.
Установка
Предварительные требования
Проверьте, что всё ниже уже есть:
- Подписка Azure с оплатой по факту
az account show
-
Ресурс Foundry в поддерживаемом регионе
Проверьте доступность моделей Claude в вашем регионе через портал Foundry (часто это East US 2 или Sweden Central). -
Права на ресурс
- Contributor или Owner на ресурсной группе для деплоя моделей.
- Роли Cognitive Services User и Foundry User на самом ресурсе Foundry.
Проверка и назначение — в Azure Portal → IAM.
- Azure CLI
az --version
az login
- Claude Code CLI
claude --version
-
VS Code (актуальная версия) и расширение Anthropic Claude Code из Marketplace.
-
Windows‑окружение: Git Bash или WSL2. Runtime Claude Code требует POSIX‑shell.
bash --version
Шаг 1 — Развёртывание моделей Claude в Foundry
Claude Code ожидает три деплоймента:
claude-sonnet-4-6claude-haiku-4-5claude-opus-4-6
Развернуть можно через портал или Azure CLI.
Через портал Foundry:
- AI Foundry → ваш проект → Build → Models + endpoints.
- Нажмите + Deploy model.
- Выберите нужную модель Anthropic Claude.
- Тип деплоя — Global Standard.
- Имя деплоя —
claude-sonnet-4-6(или другое, если планируете переопределять через переменные).
Узнать доступные версии моделей (замените eastus2 на ваш регион Foundry):
az cognitiveservices model list -l eastus2 `
--query "[?contains(model.name,'claude')].{name:model.name, version:model.version, format:model.format}" -o table
Создать деплой через Azure CLI:
az cognitiveservices account deployment create `
--name <foundry-resource> `
--resource-group <rg> `
--deployment-name claude-sonnet-4-6 `
--model-name claude-sonnet-4-6 `
--model-version <version> `
--model-format Anthropic `
--sku-name GlobalStandard `
--sku-capacity 1
Аналогично создайте деплойменты для claude-haiku-4-5 и claude-opus-4-6.
Шаг 2 — Выдайте себе роли
Это частая причина «тихих» сбоев.
Нужны две роли на ресурс Foundry:
- Cognitive Services User —
a97b65f3-24c7-4388-baec-2e87135dc908 - Foundry User (ранее Azure AI User) —
53ca6127-db72-4b80-b1b0-d745d6d5456d
Назначение ролей через Azure CLI:
$me = az ad signed-in-user show --query id -o tsv
$scope = az cognitiveservices account show -n <foundry-resource> -g <rg> --query id -o tsv
# Используем ID ролей — они не зависят от названий
az role assignment create --assignee $me --role a97b65f3-24c7-4388-baec-2e87135dc908 --scope $scope # Cognitive Services User
az role assignment create --assignee $me --role 53ca6127-db72-4b80-b1b0-d745d6d5456d --scope $scope # Foundry User (Azure AI User)
Шаг 3 — Установка Claude Code CLI
Официальный установщик Anthropic для Windows (автообновление в фоне):
irm https://claude.ai/install.ps1 | iex
claude --version
Если команда claude не находится, перезапустите оболочку. По умолчанию бинарник попадает в %USERPROFILE%\.local\bin.
Шаг 4 — Логин в нужный тенант Azure
Если ресурс Foundry в другом тенанте, чем ваш по умолчанию, az login в «не тот» тенант вызовет ошибку:
ValueError: Unable to get authority configuration for
https://login.microsoftonline.com/<bad-guid>.
Authority would typically be in a format of
https://login.microsoftonline.com/your_tenant
Правильная последовательность:
az login --tenant <foundry-tenant-guid>
az account set --subscription <foundry-subscription-guid>
az account show # проверяем tenant и subscription
Посмотреть все доступные тенанты:
az account list --query "[].{name:name, tenantId:tenantId}" -o table
Шаг 5 — Настройка CLI Claude Code на Foundry
В той же PowerShell‑сессии, из которой вы будете запускать claude, задайте переменные:
$env:CLAUDE_CODE_USE_FOUNDRY = "1"
$env:ANTHROPIC_FOUNDRY_RESOURCE = "<your-foundry-resource-name>"
# Опционально: если имена деплойментов отличаются от стандартных
$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "claude-sonnet-4-6"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "claude-haiku-4-5"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "claude-opus-4-6"
Чтобы сделать переменные постоянными:
setx CLAUDE_CODE_USE_FOUNDRY 1
setx ANTHROPIC_FOUNDRY_RESOURCE <your-foundry-resource-name>
# и так далее для остальных
После setx выйдите из системы и зайдите снова или перезапустите Explorer. GUI‑приложения вроде VS Code, запущенные из меню «Пуск», видят новые переменные только после обновления пользовательской сессии.
Важная ловушка: RESOURCE vs BASE_URL
Ошибка:
API Error: baseURL and resource are mutually exclusive
Появляется, если одновременно заданы ANTHROPIC_FOUNDRY_RESOURCE и ANTHROPIC_FOUNDRY_BASE_URL.
Выберите один вариант:
-
Типичный случай:
$env:ANTHROPIC_FOUNDRY_RESOURCE = "<name>" -
Кастомный домен / Private Endpoint — используйте
ANTHROPIC_FOUNDRY_BASE_URLвместоRESOURCE.
Шаг 6 — Проверка CLI
Запустите CLI:
claude
> /status
Ожидаемый вывод:
API provider: Microsoft Foundry
Microsoft Foundry base URL: https://<resource>.services.ai.azure.com/anthropic
Microsoft Foundry resource: <resource>
Model: Default (claude-sonnet-4-6)
Если вы видите Anthropic или приглашение залогиниться в Anthropic, значит CLAUDE_CODE_USE_FOUNDRY не подхватился.
Шаг 7 — Настройка расширения Claude Code в VS Code
-
Установите расширение Claude Code (publisher: Anthropic) из VS Code Marketplace.
-
Откройте
settings.jsonпользователя:Ctrl+Shift+P→ Preferences: Open User Settings (JSON).
Добавьте блок:
"claudeCode.environmentVariables": [
{ "name": "CLAUDE_CODE_USE_FOUNDRY", "value": "1" },
{ "name": "ANTHROPIC_FOUNDRY_RESOURCE", "value": "<your-foundry-resource-name>" }
]
Схема настроек: где легко ошибиться
В документации Microsoft настройка показана как объект вида { KEY: VALUE } под лейблом «Claude Code: Environment Variables». В актуальных версиях расширения ключ в JSON — claudeCode.environmentVariables, а значение — массив объектов {name, value}.
Если вставить старый пример как есть, VS Code покажет ошибки: «Missing property name», «Colon expected», «Unknown configuration setting». Используйте форму массива, как выше.
Как сделать так, чтобы VS Code видел az login
Расширение получает переменные окружения и Azure‑креденшелы от процесса, который запустил VS Code.
После az login:
# В той же PowerShell, где az login прошёл успешно:
code .
Если VS Code уже был открыт — полностью закройте его (а не только окно) и перезапустите из аутентифицированной оболочки. Developer: Reload Window не обновляет креденшелы Azure CLI.
Шаг 8 — Первый запуск в VS Code
-
В VS Code нажмите на иконку Claude Code (Spark) в сайдбаре.
-
В открывшейся панели введите:
Summarize the structure of this project.
Ответ должен прийти за несколько секунд, а в интерфейсе будет указано, что запрос идёт через Microsoft Foundry.
Для проверки снова выполните /status в панели — вы должны увидеть API provider: Microsoft Foundry.
Как запустить и не сломать: матрица ошибок
Ниже — быстрый справочник, что делать при типичных проблемах.
Конфликт RESOURCE и BASE_URL
Симптом:
API Error: baseURL and resource are mutually exclusive
Где: CLI Claude при первом запросе.
Причина: одновременно заданы ANTHROPIC_FOUNDRY_BASE_URL и ANTHROPIC_FOUNDRY_RESOURCE.
Решение: уберите одну переменную, для большинства случаев оставьте только ANTHROPIC_FOUNDRY_RESOURCE.
Неверный тенант
Симптом:
Unable to get authority configuration for https://login.microsoftonline.com/<guid>
Где: при старте CLI или в панели VS Code.
Причина: az login выполнен в другой тенант.
Решение:
az login --tenant <correct-guid>
az account show
VS Code не видит токен Azure
Симптом:
Failed to get token from azureADTokenProvider: ChainedTokenCredential authentication failed
Где: панель Claude Code в VS Code.
Причина: расширение не унаследовало сессию az login.
Решение: полностью закройте VS Code и запустите его из той же оболочки, где вы делали az login:
code .
Тенант токена не совпадает с тенантом ресурса
Симптом: сообщение вида Token tenant does not match resource tenant.
Где: CLI или панель VS Code.
Причина: вы залогинились в один тенант, а ресурс Foundry живёт в другом.
Решение:
az login --tenant <foundry-tenant>
Модель недоступна на Foundry
Симптом:
The model <name> is not available on your foundry deployment
Где: при первом использовании CLI или выборе модели в VS Code.
Причина: имя деплоймента не совпадает с тем, что ожидает Claude Code.
Решение: либо переименуйте деплоймент в Foundry, либо задайте переменные:
$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "<фактическое-имя>"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "<фактическое-имя>"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "<фактическое-имя>"
401 / 403 на первом запросе
Симптом: ошибки авторизации.
Где: CLI или панель VS Code.
Причина: нет нужных ролей на ресурс.
Решение: назначьте на ресурс Foundry роли Cognitive Services User и Foundry User.
Расширение просит логин в Anthropic
Симптом: панель в VS Code предлагает залогиниться в Anthropic.
Причина: CLAUDE_CODE_USE_FOUNDRY не задан в процессе VS Code.
Решение: добавьте переменную в claudeCode.environmentVariables и/или в системное окружение до запуска VS Code.
VS Code ругается на claudeCode.environmentVariables
Симптом: «Unknown Configuration Setting».
Причина: неверный формат JSON.
Решение: используйте массив объектов {name, value}, как в примере выше.
Лимиты и квоты
Симптом:
429 Too Many Requests
Где: CLI или панель VS Code.
Причина: исчерпаны TPM/RPM в Foundry.
Решение:
- Проверьте квоты в Foundry → Operate → Quotas.
- Попросите увеличение квот или уменьшите параллелизм запросов.
Работает в CLI, но не в VS Code
Симптом: CLI успешно обращается к Foundry, VS Code — нет.
Причина: переменные окружения заданы только в сессии shell, а VS Code запущен из GUI.
Решение:
- Используйте
setxдля постоянных переменных, или - Перенесите все нужные переменные в
claudeCode.environmentVariablesвsettings.json.
Регион не поддерживает Claude
Симптом: ошибка вида «Model is not available in region» при деплое через портал.
Причина: ресурс Foundry в регионе без моделей Claude.
Решение: создайте новый ресурс Foundry в поддерживаемом регионе и разверните модели там.
Практические советы
Аутентификация и секреты
- Используйте Entra ID вместо API‑ключей. Если ключ всё же нужен (например, для CI), храните его в GitHub Actions Secrets или Azure Key Vault, но не в
settings.jsonVS Code — он может синхронизироваться между машинами. - Назначайте роли на уровне ресурса, а не подписки, чтобы ограничить права.
Контекст проекта
- Создайте
CLAUDE.mdв корне репозитория с описанием стека, архитектуры и команд запуска. Claude Code автоматически его читает, и качество ответов заметно растёт. - Используйте
.claude/rules/*.mdдля локальных правил: тестирование, безопасность, код‑стайл.
Стоимость и задержки
- Дайте Claude Code самому выбирать модель по роли (Sonnet/Haiku/Opus). Не привязывайте все запросы к Opus, иначе платите временем и деньгами.
- Если у вас жёсткий бюджет, ограничьте контекст переменной
ANTHROPIC_MAX_TOKENS(поддержка зависит от версии Claude Code, проверьте документацию к вашей версии). - Раз в неделю заглядывайте в Foundry → Operate → Metrics, чтобы контролировать расход токенов.
Надёжность и командная работа
- Для командного использования сразу разверните все три роли моделей, даже если сейчас кажется, что хватит одной. Неочевидные сбои роутинга по ролям отнимают много времени.
- Тегируйте ресурс Foundry (
env=dev|prod,team=...) для прозрачного распределения затрат. - В README проекта зафиксируйте точные переменные окружения и GUID тенанта для
az login --tenant. - Добавьте в онбординг команд строку
claude --version, чтобы новые разработчики использовали ту же версию CLI.
Когда использовать RESOURCE, а когда BASE_URL
Используйте ANTHROPIC_FOUNDRY_RESOURCE, если:
- У вас стандартный публичный деплой без кастомного домена.
- Нет Private Endpoint и сложной сетевой схемы.
Используйте ANTHROPIC_FOUNDRY_BASE_URL, если:
- Вы настроили Private Endpoint.
- У вас кастомный DNS или VNet‑маршрутизация.
Никогда не задавайте оба одновременно — это гарантированно приведёт к ошибке.
В результате вы получаете Claude Code, который работает локально через CLI и VS Code, но общается с Anthropic Claude 4 (Sonnet, Haiku, Opus) через Microsoft Foundry, с Entra ID, RBAC, приватной сетью и полным мониторингом в Azure.