Дата публикации
ai_products

Как запустить 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 сам распределяет запросы по ролям.

Как это работает

Архитектура

Схема простая:

  1. Вы разворачиваете в Microsoft Foundry три модели Anthropic Claude 4.x (Sonnet, Haiku, Opus) как Global Standard‑деплойменты.
  2. Даёте себе две роли на ресурс Foundry:
    • Cognitive Services User (ID: a97b65f3-24c7-4388-baec-2e87135dc908) — доступ к вызову моделей.
    • Foundry User (ранее Azure AI User, ID: 53ca6127-db72-4b80-b1b0-d745d6d5456d) — нативные права Foundry.
  3. Логинитесь в нужный Azure‑тенант через az login.
  4. Включаете режим Foundry в CLI и VS Code‑расширении Claude Code через переменные окружения.
  5. 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:

  1. Вы выполняете az login --tenant <tenant> и выбираете подписку.
  2. Azure CLI получает токен для нужного тенанта.
  3. Claude Code CLI и VS Code‑расширение используют этот токен через стандартные механизмы Azure (ChainedTokenCredential).

Если VS Code запущен не из той же оболочки, где вы делали az login, расширение не видит токен и падает с ошибкой Failed to get token from azureADTokenProvider.

Что это значит для вас

Когда это реально полезно

  1. Корпоративная разработка на Azure

    • Вы уже используете Azure, у вас есть требования по хранению данных внутри тенанта.
    • Нужен кодовый ассистент уровня Claude 4, но без API‑ключей и без вывода трафика наружу.
    • Важен централизованный контроль доступов через Entra ID и Azure RBAC.
  2. Команды с приватной сетью

    • У вас VNet, Private Endpoint, выход в интернет ограничен.
    • Стандартный доступ к Anthropic может быть заблокирован, а Foundry доступен.
  3. Финансы и отчётность

    • Удобнее видеть расходы на Claude Code в одном счёте Azure.
    • Нужен мониторинг токенов и квот через Foundry → Operate → Metrics / Quotas.
  4. Единая среда для команды

    • Все разработчики используют один и тот же набор моделей (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.

Установка

Предварительные требования

Проверьте, что всё ниже уже есть:

  1. Подписка Azure с оплатой по факту
az account show
  1. Ресурс Foundry в поддерживаемом регионе
    Проверьте доступность моделей Claude в вашем регионе через портал Foundry (часто это East US 2 или Sweden Central).

  2. Права на ресурс

  • Contributor или Owner на ресурсной группе для деплоя моделей.
  • Роли Cognitive Services User и Foundry User на самом ресурсе Foundry.

Проверка и назначение — в Azure Portal → IAM.

  1. Azure CLI
az --version
az login
  1. Claude Code CLI
claude --version
  1. VS Code (актуальная версия) и расширение Anthropic Claude Code из Marketplace.

  2. Windows‑окружение: Git Bash или WSL2. Runtime Claude Code требует POSIX‑shell.

bash --version

Шаг 1 — Развёртывание моделей Claude в Foundry

Claude Code ожидает три деплоймента:

  • claude-sonnet-4-6
  • claude-haiku-4-5
  • claude-opus-4-6

Развернуть можно через портал или Azure CLI.

Через портал Foundry:

  1. AI Foundry → ваш проект → Build → Models + endpoints.
  2. Нажмите + Deploy model.
  3. Выберите нужную модель Anthropic Claude.
  4. Тип деплоя — Global Standard.
  5. Имя деплоя — 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

  1. Установите расширение Claude Code (publisher: Anthropic) из VS Code Marketplace.

  2. Откройте settings.json пользователя:

    • Ctrl+Shift+PPreferences: 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

  1. В VS Code нажмите на иконку Claude Code (Spark) в сайдбаре.

  2. В открывшейся панели введите:

    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.json VS 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.


Читайте также