---
title: Claude в Microsoft Foundry
url: https://platform.claude.com/docs/ru/build-with-claude/claude-in-microsoft-foundry
description: Получите доступ к моделям Claude через Microsoft Foundry с нативными для Azure конечными точками и аутентификацией.
---

В этом руководстве показано, как настроить Claude в Microsoft Foundry и выполнять к нему вызовы API с помощью одного из клиентских SDK от Anthropic или прямых HTTP-запросов. При доступе к Claude в Microsoft Foundry счета за использование Claude выставляются через Azure Marketplace. Вы можете использовать модели Claude, включая Claude Fable 5.1, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Sonnet 5.5, Claude Sonnet 5 и Claude Haiku 5.5, а также такие функции, как [«context window» (контекстное окно) на 1M токенов](https://platform.claude.com/docs/ru/build-with-claude/context-windows), управляя расходами через свою подписку Azure.

Claude доступен в ресурсах Foundry с типами развертывания Global Standard и US Data Zone Standard, а оплата выставляется в Claude Consumption Units через Azure Marketplace. Подробности см. в разделе [Цены на Claude в Microsoft Foundry](https://platform.claude.com/docs/ru/about-claude/pricing#claude-in-microsoft-foundry-pricing).

## Варианты размещения

Модели Claude в Microsoft Foundry доступны в двух вариантах «hosting» (размещения). Вариант размещения выбирается при настройке «deployment» (развертывания).

|                          | Размещение в Azure                                                   | Размещение в Anthropic                                                                                                                                                                                       |
| ------------------------ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Где выполняется инференс | Сервис под управлением Anthropic, работающий на инфраструктуре Azure | Сервис под управлением Anthropic, работающий на инфраструктуре Anthropic                                                                                                                                     |
| Доступность моделей      | Новейшие модели семейств Opus, Sonnet и Haiku                        | Все модели Claude, доступные в Microsoft Foundry                                                                                                                                                             |
| Типы развертывания       | Global Standard, US Data Zone Standard                               | Global Standard                                                                                                                                                                                              |
| Рекомендуется для        | Большинства рабочих нагрузок                                         | [Доступа к функциям или моделям, которые еще не размещены в Azure](https://platform.claude.com/docs/ru/build-with-claude/claude-in-microsoft-foundry#additional-features-not-supported-when-hosted-on-azure) |

Claude Sonnet 5.5 поддерживает только развертывания Global Standard.

<Note>
  Anthropic выступает в качестве независимого обработчика данных для Microsoft. На клиентов, использующих Claude через Microsoft Foundry, распространяются условия использования данных Anthropic. Для развертываний, размещенных в Azure, подсказки и ответы остаются в пределах Azure. В Anthropic передаются только метаданные использования и контент, помеченный системами безопасности Anthropic. Anthropic продолжает соблюдать свои обязательства в области безопасности и обработки данных.
</Note>

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

Прежде чем начать, убедитесь, что у вас есть:

* Активная подписка Azure
* Доступ к [порталу Foundry](https://ai.azure.com/)
* Установленный [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) (требуется для примеров cURL и CLI с Entra ID, в остальных случаях необязателен)
* Роль Azure RBAC, позволяющая использовать ресурс, например **Foundry User** (ранее Azure AI User) или **Cognitive Services User**

## Установка SDK

[Клиентские SDK](https://platform.claude.com/docs/ru/cli-sdks-libraries/overview) от Anthropic поддерживают Foundry через отдельный пакет или клиентский класс для платформы. В примерах на этой странице также показаны запросы с помощью cURL и ant CLI. Чтобы настроить CLI, см. [Быстрый старт с CLI](https://platform.claude.com/docs/ru/cli-sdks-libraries/cli/quickstart).

<Note>
  Foundry поддерживается в SDK для C#, Go, Java, PHP, Python и TypeScript. В настоящее время Foundry недоступен в Ruby SDK.
</Note>

<Tabs>
  <Tab title="Python">
    ```bash
    pip install -U "anthropic"

    # Для аутентификации через Entra ID также установите библиотеку Azure Identity
    pip install azure-identity
    ```
  </Tab>

  <Tab title="TypeScript">
    ```bash
    npm install @anthropic-ai/foundry-sdk

    # Для аутентификации через Entra ID также установите библиотеку Azure Identity
    npm install @azure/identity
    ```
  </Tab>

  <Tab title="C#">
    ```bash
    dotnet add package Anthropic.Foundry
    ```
  </Tab>

  <Tab title="Go">
    ```bash
    go get github.com/anthropics/anthropic-sdk-go/foundry

    # Для аутентификации через Entra ID также установите библиотеку Azure Identity
    go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
    ```
  </Tab>

  <Tab title="Java">
    <Tabs>
      <Tab title="Gradle">
        ```kotlin
        implementation("com.anthropic:anthropic-java:2.73.0")
        implementation("com.anthropic:anthropic-java-foundry:2.73.0")

        // Для аутентификации через Entra ID также добавьте библиотеку Azure Identity
        implementation("com.azure:azure-identity:1.18.3")
        ```
      </Tab>

      <Tab title="Maven">
        ```xml
        <dependency>
            <groupId>com.anthropic</groupId>
            <artifactId>anthropic-java</artifactId>
            <version>2.73.0</version>
        </dependency>
        <dependency>
            <groupId>com.anthropic</groupId>
            <artifactId>anthropic-java-foundry</artifactId>
            <version>2.73.0</version>
        </dependency>
        <!-- For Entra ID authentication, also add the Azure Identity library -->
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity</artifactId>
            <version>1.18.3</version>
        </dependency>
        ```
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="PHP">
    ```bash
    composer require "anthropic-ai/sdk" "guzzlehttp/guzzle:^7"
    ```
  </Tab>

  <Tab title="Ruby">
    ```bash
    # Ruby SDK пока не поддерживает Foundry нативно (см. примеры в разделе Authentication
    # об использовании стандартного Ruby SDK в качестве обходного решения)
    # Gemfile
    gem "anthropic"
    ```
  </Tab>
</Tabs>

## Подготовка к работе

Foundry использует двухуровневую иерархию: **ресурсы** содержат вашу конфигурацию безопасности и биллинга, а **развертывания** — это экземпляры моделей, которые вы вызываете через API. Сначала вы создадите ресурс Foundry, а затем одно или несколько развертываний Claude внутри него.

### Подготовка ресурсов Foundry

Создайте ресурс Foundry, который необходим для использования и управления сервисами в Azure. Вы можете следовать этим инструкциям, чтобы создать [ресурс Foundry](https://learn.microsoft.com/en-us/azure/ai-services/multi-service-resource?pivots=azportal#create-a-new-azure-ai-foundry-resource). В качестве альтернативы вы можете начать с создания [проекта Foundry](https://learn.microsoft.com/en-us/azure/foundry/how-to/create-projects), что включает создание ресурса Foundry.

Чтобы подготовить ваш ресурс:

1. Перейдите на [портал Foundry](https://ai.azure.com/).
2. Создайте новый ресурс Foundry или выберите существующий.
3. Настройте управление доступом с помощью выданных Azure ключей API или Entra ID (ранее Azure Active Directory) для управления доступом на основе ролей.
4. При необходимости настройте ресурс как часть частной сети (Azure Virtual Network), чтобы ограничить сетевой доступ к вашему ресурсу.
5. Запишите имя вашего ресурса. Вы будете использовать его как `{resource}` в конечных точках API (например, `https://{resource}.services.ai.azure.com/anthropic/v1/*`).

### Создание развертываний Foundry

После создания ресурса разверните модель Claude, чтобы сделать ее доступной для вызовов API. Эти шаги описывают новый портал Foundry (переключатель **New Foundry** включен):

1. Войдите на портал Foundry. На главной странице портала выберите **Discover** в навигации в правом верхнем углу, затем **Models** на левой панели, чтобы открыть каталог моделей.

2. Найдите и выберите модель Claude (например, claude-opus-5-5). Каждая модель отображается в каталоге один раз, независимо от того, сколько вариантов размещения она поддерживает.

3. На карточке модели выберите **Deploy**, затем **Custom settings**, чтобы открыть панель настроек развертывания. Если вместо этого выбрать **Default settings**, развертывание автоматически настраивается как Hosted on Azure для моделей, доступных в обоих вариантах размещения.

4. При первом развертывании Claude ознакомьтесь с условиями Azure Marketplace, выберите отрасль и нажмите **Agree and Proceed**, чтобы принять условия и подписаться на предложение Azure Marketplace.

5. Настройте развертывание:

   * **Deployment name:** по умолчанию совпадает с ID модели, но его можно изменить (например, `my-claude-deployment`). Имя развертывания нельзя изменить после создания.
   * **Region scope:** выберите Global или, для моделей, размещенных в Azure, Data Zone. При выборе Data Zone создается развертывание US Data Zone Standard, которое обеспечивает выполнение инференса в пределах США и эквивалентно установке [`inference_geo: "us"`](https://platform.claude.com/docs/ru/manage-claude/data-residency#inference-geo) в Claude API. Для Claude Sonnet 5.5 выберите Global.
   * **Model version:** разверните **Model version settings** и выберите версию в раскрывающемся меню **Model version**. Каждый [вариант размещения](https://platform.claude.com/docs/ru/build-with-claude/claude-in-microsoft-foundry#hosting-options) указан как отдельная версия модели с пометкой варианта размещения (например, версия 1 для Hosted on Anthropic, версия 2 для Hosted on Azure).

6. Выберите **Deploy** и дождитесь завершения подготовки.

7. После развертывания выберите **Build** в навигации в правом верхнем углу, затем **Models** на левой панели и откройте свое развертывание. На вкладке **Details** отображаются **Target URI** (URL вашей конечной точки) и **Key** (ваш ключ API).

Если переключатель **New Foundry** выключен, вы находитесь в классическом интерфейсе портала. В нем откройте **Model catalog** на левой панели, чтобы найти и развернуть модель, и откройте **Models + endpoints** (в разделе **My assets**), чтобы просмотреть свои развертывания и сведения об их конечных точках.

<Note>
  Выбранное вами имя развертывания становится значением, которое вы передаете в параметре `model` своих запросов API. Вы можете создать несколько развертываний одной и той же модели с разными именами, чтобы управлять отдельными конфигурациями или «rate limits» (ограничениями скорости).
</Note>

## Аутентификация

Claude в Microsoft Foundry поддерживает два метода аутентификации: ключи API и токены Entra ID. Оба метода используют размещённые в Azure конечные точки в формате `https://{resource}.services.ai.azure.com/anthropic/v1/*`.

### Аутентификация с помощью ключа API

После подготовки вашего ресурса Claude в Foundry вы можете получить ключ API на портале Foundry:

1. На портале Foundry выберите **Build** в навигации в правом верхнем углу, затем **Models** на левой панели.
2. Откройте свое развертывание Claude и выберите вкладку **Details**.
3. Скопируйте значение **Key** (и запишите **Target URI** для вашей конечной точки).
4. Используйте заголовок `api-key` или `x-api-key` в своих запросах либо передайте ключ в SDK.

Клиент Foundry в SDK требует ключ API и либо имя ресурса, либо базовый URL, и автоматически считывает их из следующих переменных окружения, если они заданы:

* `ANTHROPIC_FOUNDRY_API_KEY` — ваш ключ API
* `ANTHROPIC_FOUNDRY_RESOURCE` — имя вашего ресурса (например, `example-resource`)
* `ANTHROPIC_FOUNDRY_BASE_URL` — альтернатива имени ресурса: полный базовый URL (например, `https://example-resource.services.ai.azure.com/anthropic/`). C# SDK не считывает эту переменную: он всегда формирует базовый URL из имени ресурса.

<Note>
  Параметры `resource` и `base_url` являются взаимоисключающими. Укажите либо имя ресурса (которое SDK использует для формирования URL вида `https://{resource}.services.ai.azure.com/anthropic/`), либо непосредственно полный базовый URL.
</Note>

**Пример с использованием ключа API:**

<CodeGroup>
  ```bash cURL
  curl https://{resource}.services.ai.azure.com/anthropic/v1/messages \
    -H "content-type: application/json" \
    -H "api-key: YOUR_AZURE_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -d '{
      "model": "claude-opus-5-5",
      "max_tokens": 1024,
      "messages": [
        {"role": "user", "content": "Hello!"}
      ]
    }'
  ```

  ```bash CLI
  # ant читает ANTHROPIC_API_KEY и отправляет его как x-api-key, что Foundry принимает
  export ANTHROPIC_API_KEY="YOUR_AZURE_API_KEY"

  ant messages create \
    --base-url https://example-resource.services.ai.azure.com/anthropic \
    --model claude-opus-5-5 \
    --max-tokens 1024 \
    --message '{role: user, content: "Hello!"}' \
    --transform content
  ```

  ```python Python
  import os
  from anthropic import AnthropicFoundry

  client = AnthropicFoundry(
      api_key=os.environ.get("ANTHROPIC_FOUNDRY_API_KEY"),
      resource="example-resource",  # your resource name
  )

  message = client.messages.create(
      model="claude-opus-5-5",
      max_tokens=1024,
      messages=[{"role": "user", "content": "Hello!"}],
  )
  print(message.content)
  ```

  ```typescript TypeScript
  import AnthropicFoundry from "@anthropic-ai/foundry-sdk";

  const client = new AnthropicFoundry({
    apiKey: process.env.ANTHROPIC_FOUNDRY_API_KEY,
    resource: "example-resource" // your resource name
  });

  const message = await client.messages.create({
    model: "claude-opus-5-5",
    max_tokens: 1024,
    messages: [{ role: "user", content: "Hello!" }]
  });
  console.log(message.content);
  ```

  ```csharp C#
  using Anthropic.Foundry;
  using Anthropic.Models.Messages;

  // Клиент C# всегда формирует базовый URL из имени ресурса.
  // Он не считывает ANTHROPIC_FOUNDRY_BASE_URL.
  var client = new AnthropicFoundryClient(
      new AnthropicFoundryApiKeyCredentials(
          Environment.GetEnvironmentVariable("ANTHROPIC_FOUNDRY_API_KEY")!,
          "example-resource"
      )
  );

  var response = await client.Messages.Create(new MessageCreateParams
  {
      Model = "claude-opus-5-5",
      MaxTokens = 1024,
      Messages = [new() { Role = Role.User, Content = "Hello!" }],
  });

  Console.WriteLine(
      string.Join("", response.Content
          .Select(block => block.Value)
          .OfType<TextBlock>()
          .Select(textBlock => textBlock.Text)));
  ```

  ```go Go
  package main

  import (
  	"context"
  	"fmt"
  	"os"

  	"github.com/anthropics/anthropic-sdk-go"
  	"github.com/anthropics/anthropic-sdk-go/foundry"
  )

  func main() {
  	client, err := foundry.NewClient(foundry.ClientConfig{
  		APIKey:   os.Getenv("ANTHROPIC_FOUNDRY_API_KEY"),
  		Resource: "example-resource", // your resource name
  	})
  	if err != nil {
  		panic(err)
  	}

  	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
  		Model:     "claude-opus-5-5",
  		MaxTokens: 1024,
  		Messages: []anthropic.MessageParam{
  			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")),
  		},
  	})
  	if err != nil {
  		panic(err)
  	}
  	fmt.Println(message.Content)
  }
  ```

  ```java Java
  import com.anthropic.client.AnthropicClient;
  import com.anthropic.client.okhttp.AnthropicOkHttpClient;
  import com.anthropic.foundry.backends.FoundryBackend;
  import com.anthropic.models.messages.MessageCreateParams;

  void main() {
      // Требуются переменные окружения: ANTHROPIC_FOUNDRY_API_KEY, ANTHROPIC_FOUNDRY_RESOURCE
      AnthropicClient client = AnthropicOkHttpClient.builder()
          .backend(FoundryBackend.fromEnv())
          .build();

      MessageCreateParams params = MessageCreateParams.builder()
          .model("claude-opus-5-5")
          .maxTokens(1024)
          .addUserMessage("Hello!")
          .build();

      client.messages().create(params).content().stream()
          .flatMap(block -> block.text().stream())
          .forEach(textBlock -> IO.println(textBlock.text()));
  }
  ```

  ```php PHP
  use Anthropic\Foundry;

  $client = Foundry\Client::withCredentials(
      apiKey: getenv('ANTHROPIC_FOUNDRY_API_KEY'),
      baseUrl: 'https://example-resource.services.ai.azure.com/anthropic',
  );

  $message = $client->messages->create(
      maxTokens: 1024,
      messages: [
          ['role' => 'user', 'content' => 'Hello!']
      ],
      model: 'claude-opus-5-5',
  );
  echo array_find($message->content, fn ($block) => $block->type === 'text')->text;
  ```

  ```ruby Ruby
  # Ruby SDK пока не поддерживает Foundry нативно. В этом примере используется
  # стандартный Ruby SDK в качестве обходного решения. Передавайте учётные данные явно: без
  # них клиент использует переменные окружения ANTHROPIC_API_KEY или
  # ANTHROPIC_AUTH_TOKEN и может отправить учётные данные Claude API
  # на ваш эндпоинт Foundry. Функции, которые Foundry
  # не поддерживает, завершаются ошибкой на стороне сервера, а не клиента. Для полной
  # поддержки Foundry используйте SDK для C#, Go, Java, PHP, Python или TypeScript.
  require "anthropic"

  client = Anthropic::Client.new(
    base_url: "https://example-resource.services.ai.azure.com/anthropic",
    api_key: ENV.fetch("ANTHROPIC_FOUNDRY_API_KEY")
  )

  message = client.messages.create(
    model: "claude-opus-5-5",
    max_tokens: 1024,
    messages: [{role: "user", content: "Hello!"}]
  )

  puts message.content.find { it.type == :text }.text
  ```
</CodeGroup>

<Warning>
  Храните свои ключи API в безопасности. Никогда не добавляйте их в систему контроля версий и не публикуйте. Любой, у кого есть доступ к вашему ключу API, может отправлять запросы к Claude через ваш ресурс Foundry.
</Warning>

### Аутентификация Microsoft Entra

Аутентификация Entra ID позволяет управлять доступом с помощью Azure RBAC, интегрироваться с системой управления удостоверениями вашей организации и избежать ручной работы с ключами API. Чтобы использовать токены Entra ID:

1. Включите [аутентификацию Microsoft Entra ID](https://learn.microsoft.com/en-us/azure/ai-foundry/model-inference/how-to/configure-entra-id) для своего ресурса Foundry.
2. Получите токен доступа от Entra ID.
3. Используйте токен в заголовке `Authorization: Bearer {TOKEN}`.

**Пример с использованием Entra ID:**

<CodeGroup>
  ```bash cURL
  # Получение токена Microsoft Entra ID
  ACCESS_TOKEN=$(az account get-access-token --resource https://ai.azure.com --query accessToken -o tsv)

  # Выполнение запроса с токеном. Замените {resource} на имя вашего ресурса
  curl https://{resource}.services.ai.azure.com/anthropic/v1/messages \
    -H "content-type: application/json" \
    -H "Authorization: Bearer $ACCESS_TOKEN" \
    -H "anthropic-version: 2023-06-01" \
    -d '{
      "model": "claude-opus-5-5",
      "max_tokens": 1024,
      "messages": [
        {"role": "user", "content": "Hello!"}
      ]
    }'
  ```

  ```bash CLI
  # Получение токена Microsoft Entra ID
  ACCESS_TOKEN=$(az account get-access-token --resource https://ai.azure.com --query accessToken -o tsv)

  # Выполнение запроса с токеном. Замените {resource} на имя вашего ресурса
  # env -u сбрасывает ANTHROPIC_API_KEY, который CLI иначе отправил бы вместо токена
  env -u ANTHROPIC_API_KEY ANTHROPIC_AUTH_TOKEN="$ACCESS_TOKEN" ant messages create \
    --base-url https://{resource}.services.ai.azure.com/anthropic \
    --model claude-opus-5-5 \
    --max-tokens 1024 \
    --message '{role: user, content: "Hello!"}'
  ```

  ```python Python
  from anthropic import AnthropicFoundry
  from azure.identity import DefaultAzureCredential, get_bearer_token_provider

  # Получение токена Microsoft Entra ID с помощью шаблона поставщика токенов
  token_provider = get_bearer_token_provider(
      DefaultAzureCredential(), "https://ai.azure.com/.default"
  )

  # Создание клиента с аутентификацией через Entra ID
  client = AnthropicFoundry(
      resource="example-resource",  # your resource name
      azure_ad_token_provider=token_provider,  # Use token provider for Entra ID auth
  )

  # Выполнение запроса
  message = client.messages.create(
      model="claude-opus-5-5",
      max_tokens=1024,
      messages=[{"role": "user", "content": "Hello!"}],
  )
  print(message.content)
  ```

  ```typescript TypeScript
  import AnthropicFoundry from "@anthropic-ai/foundry-sdk";
  import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";

  // Получение токена Entra ID с помощью шаблона поставщика токенов
  const credential = new DefaultAzureCredential();
  const tokenProvider = getBearerTokenProvider(credential, "https://ai.azure.com/.default");

  // Создание клиента с аутентификацией через Entra ID
  const client = new AnthropicFoundry({
    resource: "example-resource", // your resource name
    azureADTokenProvider: tokenProvider // Use token provider for Entra ID auth
  });

  // Выполнение запроса
  const message = await client.messages.create({
    model: "claude-opus-5-5",
    max_tokens: 1024,
    messages: [{ role: "user", content: "Hello!" }]
  });
  console.log(message.content);
  ```

  ```csharp C#
  using Anthropic.Foundry;
  using Anthropic.Models.Messages;
  using Azure.Identity;

  var client = new AnthropicFoundryClient(
      new AnthropicFoundryIdentityTokenCredentials(
          new DefaultAzureCredential(),
          "example-resource"
      )
  );

  var response = await client.Messages.Create(new MessageCreateParams
  {
      Model = "claude-opus-5-5",
      MaxTokens = 1024,
      Messages = [new() { Role = Role.User, Content = "Hello!" }],
  });

  Console.WriteLine(
      string.Join("", response.Content
          .Select(block => block.Value)
          .OfType<TextBlock>()
          .Select(textBlock => textBlock.Text)));
  ```

  ```go Go
  package main

  import (
  	"context"
  	"fmt"

  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
  	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
  	"github.com/anthropics/anthropic-sdk-go"
  	"github.com/anthropics/anthropic-sdk-go/foundry"
  )

  func main() {
  	credential, err := azidentity.NewDefaultAzureCredential(nil)
  	if err != nil {
  		panic(err)
  	}

  	tokenProvider := func(ctx context.Context) (string, error) {
  		token, err := credential.GetToken(ctx, policy.TokenRequestOptions{
  			Scopes: []string{foundry.EntraIDScope},
  		})
  		return token.Token, err
  	}

  	client, err := foundry.NewClient(foundry.ClientConfig{
  		Resource:             "example-resource", // your resource name
  		AzureADTokenProvider: tokenProvider,
  	})
  	if err != nil {
  		panic(err)
  	}

  	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
  		Model:     "claude-opus-5-5",
  		MaxTokens: 1024,
  		Messages: []anthropic.MessageParam{
  			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")),
  		},
  	})
  	if err != nil {
  		panic(err)
  	}
  	fmt.Println(message.Content)
  }
  ```

  ```java Java
  import com.anthropic.client.AnthropicClient;
  import com.anthropic.client.okhttp.AnthropicOkHttpClient;
  import com.anthropic.foundry.backends.FoundryBackend;
  import com.anthropic.models.messages.MessageCreateParams;
  import com.azure.identity.AuthenticationUtil;
  import com.azure.identity.DefaultAzureCredentialBuilder;
  import java.util.function.Supplier;

  void main() {
      Supplier<String> bearerTokenSupplier = AuthenticationUtil.getBearerTokenSupplier(
          new DefaultAzureCredentialBuilder().build(),
          "https://ai.azure.com/.default"
      );

      AnthropicClient client = AnthropicOkHttpClient.builder()
          .backend(FoundryBackend.builder()
              .bearerTokenSupplier(bearerTokenSupplier)
              .resource("example-resource")
              .build())
          .build();

      MessageCreateParams params = MessageCreateParams.builder()
          .model("claude-opus-5-5")
          .maxTokens(1024)
          .addUserMessage("Hello!")
          .build();

      client.messages().create(params).content().stream()
          .flatMap(block -> block.text().stream())
          .forEach(textBlock -> IO.println(textBlock.text()));
  }
  ```

  ```php PHP
  use Anthropic\Foundry;

  // Получите токен доступа Entra ID, например с помощью Azure CLI:
  //   az account get-access-token --resource https://ai.azure.com \
  //     --query accessToken -o tsv
  $token = getenv('AZURE_ACCESS_TOKEN');

  $client = Foundry\Client::withCredentials(
      authToken: $token,
      baseUrl: 'https://example-resource.services.ai.azure.com/anthropic',
  );

  $message = $client->messages->create(
      maxTokens: 1024,
      messages: [
          ['role' => 'user', 'content' => 'Hello!']
      ],
      model: 'claude-opus-5-5',
  );
  echo array_find($message->content, fn ($block) => $block->type === 'text')->text;
  ```

  ```ruby Ruby
  # Ruby SDK пока не поддерживает Foundry нативно. В этом примере используется
  # стандартный Ruby SDK как обходное решение со статическим токеном Entra ID: автоматическое
  # обновление токенов не встроено, поэтому ваше приложение должно обновлять токены
  # самостоятельно (обычно они истекают через 1 час). Передавайте учётные данные явно:
  # без них клиент использует переменные окружения ANTHROPIC_API_KEY или
  # ANTHROPIC_AUTH_TOKEN. Для полной поддержки Foundry используйте
  # SDK для C#, Go, Java, PHP, Python или TypeScript.
  require "anthropic"

  # Получите токен доступа Entra ID, например с помощью Azure CLI:
  #   az account get-access-token --resource https://ai.azure.com \
  #     --query accessToken -o tsv
  client = Anthropic::Client.new(
    base_url: "https://example-resource.services.ai.azure.com/anthropic",
    auth_token: ENV.fetch("AZURE_ACCESS_TOKEN")
  )

  message = client.messages.create(
    model: "claude-opus-5-5",
    max_tokens: 1024,
    messages: [{role: "user", content: "Hello!"}]
  )

  puts message.content.find { it.type == :text }.text
  ```
</CodeGroup>

## Корреляционные идентификаторы запросов

Foundry включает идентификаторы запросов в заголовки HTTP-ответов для отладки и трассировки. При обращении в службу поддержки предоставьте значения `request-id` и `apim-request-id` (Azure API Management), чтобы помочь командам быстро найти и исследовать ваш запрос в системах как Anthropic, так и Azure.

## Поддержка функций

Claude в Microsoft Foundry поддерживает большинство функций Claude. Все поддерживаемые в настоящее время функции можно найти в разделе [Обзор функций](https://platform.claude.com/docs/ru/build-with-claude/overview).

### Контекстное окно

Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5.5, Claude Sonnet 5, Claude Sonnet 4.6 и Claude Haiku 5.5 имеют [контекстное окно на 1M токенов](https://platform.claude.com/docs/ru/build-with-claude/context-windows) в Microsoft Foundry. Другие модели Claude, включая Claude Sonnet 4.5 (устаревшая), имеют контекстное окно на 200k токенов.

### Функции Claude, не поддерживаемые для Claude в Microsoft Foundry

* Admin API
* Инструмент Advisor
* Claude Managed Agents
* Compliance API
* Models API
* Message Batches API
* Резервное переключение на стороне сервера ([параметр `fallbacks`](https://platform.claude.com/docs/ru/build-with-claude/refusals-and-fallback#server-side-fallback); вместо него используйте [паттерн резервного переключения на стороне клиента](https://platform.claude.com/docs/ru/build-with-claude/refusals-and-fallback#client-side-fallback))
* Наборы инструментов [computer use](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/computer-use-tool) и [browser use](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/browser-use-tool) (`computer_toolset_20260801` и `browser_toolset_20260801` в настоящее время недоступны в Microsoft Foundry; бета-версии инструмента computer use остаются доступными для моделей, перечисленных в разделе [Более ранние версии инструмента](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/computer-use-tool#earlier-tool-versions))

### Дополнительные функции, не поддерживаемые при размещении в Azure

Следующие функции доступны для развертываний, размещённых в Anthropic, но не поддерживаются для развертываний, размещённых в Azure:

* [Выполнение кода](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/code-execution-tool)
* Версии инструментов [веб-поиска](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/web-search-tool) и [веб-загрузки](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/web-fetch-tool) новее `web_search_20250305` и `web_fetch_20250910`. Развертывания, размещённые в Azure, поддерживают только эти базовые версии, поэтому динамическая фильтрация, включение ответов и обход кэша недоступны.
* [Agent Skills](https://platform.claude.com/docs/ru/agents-and-tools/agent-skills/overview)
* [Программный вызов инструментов](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/programmatic-tool-calling)
* [Files API](https://platform.claude.com/docs/ru/build-with-claude/files)

Запросы, использующие эти функции с развертыванием, размещённым в Azure, намеренно возвращают ошибку `400 Bad Request`. Claude Code определяет развертывания, размещённые в Azure, и автоматически адаптирует свой набор функций.

## Ответы API

Ответы API от Claude в Microsoft Foundry соответствуют стандартному [формату ответов Claude API](https://platform.claude.com/docs/ru/api/messages/create). Это включает объект `usage` в телах ответов, который предоставляет подробную информацию о потреблении токенов для ваших запросов. Объект `usage` единообразен на всех платформах (Claude API, Amazon Bedrock, Claude Platform on AWS, Foundry и Google Cloud).

Подробности о заголовках ответов, специфичных для Foundry, см. в разделе [Корреляционные идентификаторы запросов](https://platform.claude.com/docs/ru/build-with-claude/claude-in-microsoft-foundry#correlation-request-ids).

## Идентификаторы моделей API и развертывания

Термины жизненного цикла (Deprecated, Retired) определены в разделе [Устаревание моделей](https://platform.claude.com/docs/ru/about-claude/model-deprecations). Microsoft Foundry следует графику жизненного цикла Claude API.

Через Foundry доступны следующие модели Claude:

| Model                                                                                                 | Default deployment name | Hosted on Azure | Hosted on Anthropic |
| :---------------------------------------------------------------------------------------------------- | :---------------------- | :-------------: | :-----------------: |
| Claude Fable 5.1                                                                                      | `claude-fable-5-1`      |                 |          ✓          |
| Claude Mythos 5.1 ([limited availability](https://support.claude.com/en/articles/14604842))           | `claude-mythos-5-1`     |                 |          ✓          |
| Claude Fable 5                                                                                        | `claude-fable-5`        |                 |          ✓          |
| Claude Mythos 5 ([limited availability](https://support.claude.com/en/articles/14604842))             | `claude-mythos-5`       |                 |          ✓          |
| Claude Opus 5.5                                                                                       | `claude-opus-5-5`       |        ✓        |          ✓          |
| Claude Opus 5                                                                                         | `claude-opus-5`         |        ✓        |          ✓          |
| Claude Opus 4.8                                                                                       | `claude-opus-4-8`       |        ✓        |          ✓          |
| Claude Opus 4.7                                                                                       | `claude-opus-4-7`       |                 |          ✓          |
| Claude Opus 4.6                                                                                       | `claude-opus-4-6`       |                 |          ✓          |
| Claude Opus 4.5                                                                                       | `claude-opus-4-5`       |                 |          ✓          |
| Claude Sonnet 5.5                                                                                     | `claude-sonnet-5-5`     |        ✓        |          ✓          |
| Claude Sonnet 5                                                                                       | `claude-sonnet-5`       |        ✓        |          ✓          |
| Claude Sonnet 4.6                                                                                     | `claude-sonnet-4-6`     |                 |          ✓          |
| Claude Sonnet 4.5 ([deprecated](https://platform.claude.com/docs/ru/about-claude/model-deprecations)) | `claude-sonnet-4-5`     |                 |          ✓          |
| Claude Haiku 5.5                                                                                      | `claude-haiku-5-5`      |        ✓        |          ✓          |
| Claude Haiku 4.5                                                                                      | `claude-haiku-4-5`      |        ✓        |          ✓          |

По умолчанию имена развертываний совпадают с идентификаторами моделей, указанными в таблице выше. Однако вы можете создавать пользовательские развертывания с другими именами на портале Foundry для управления различными конфигурациями, версиями или ограничениями скорости. Используйте в ваших запросах API имя развертывания (не обязательно идентификатор модели).

<Info>
  [Claude Mythos Preview](https://anthropic.com/glasswing) — это исследовательская предварительная версия, доступная приглашённым клиентам в Microsoft Foundry.
</Info>

<Tip>
  Переходите на более новую модель Claude? В Claude Code выполните `/claude-api migrate`, чтобы применить замену идентификаторов моделей и критические изменения параметров во всей вашей кодовой базе. Навык определяет, на какую облачную платформу ориентирован ваш код, и корректирует форматы идентификаторов моделей и изменения функций для этой платформы. См. раздел [Миграция на более новую модель Claude](https://platform.claude.com/docs/ru/agents-and-tools/agent-skills/claude-api-skill#migrating-to-a-newer-claude-model).
</Tip>

## Биллинг

Claude в Microsoft Foundry выставляет счета через [Azure Marketplace](https://azuremarketplace.microsoft.com/). Использование выражается в Claude Consumption Units (CCU), измеряется ежечасно и выставляется к оплате ежемесячно по факту в вашем счёте Azure. CCU не являются предоплаченными кредитами. Баланса CCU или обязательств по ним не существует.

Цену CCU, механику конвертации и тарифы на токены для каждой модели см. в разделе [Цены на Claude в Microsoft Foundry](https://platform.claude.com/docs/ru/about-claude/pricing#claude-in-microsoft-foundry-pricing).

## Миграция между вариантами размещения

Чтобы перенести существующее развертывание с одного варианта размещения на другой:

1. Создайте новое развертывание другой версии размещения модели (Hosted on Azure или Hosted on Anthropic). Оно может находиться в том же ресурсе Foundry или в новом.
2. Обновите ваше приложение, чтобы передавать новое имя развертывания в параметре `model`.
3. Удалите старое развертывание после переноса трафика.

Если новое развертывание находится в том же ресурсе Foundry, URL вашей конечной точки и аутентификация остаются без изменений. Если вы создали новый ресурс, обновите конечную точку и учётные данные вашего приложения, чтобы они указывали на него.

## Мониторинг и логирование

Azure предоставляет мониторинг и логирование вашего использования Claude с помощью стандартных механизмов Azure:

* **Azure Monitor:** отслеживание использования API, задержек и частоты ошибок
* **Azure Log Analytics:** запросы и анализ логов запросов/ответов
* **Cost Management:** мониторинг и прогнозирование расходов, связанных с использованием Claude

Anthropic рекомендует вести логи вашей активности как минимум за скользящий 30-дневный период, чтобы понимать закономерности использования и исследовать любые потенциальные проблемы.

<Note>
  Сервисы логирования Azure настраиваются в рамках вашей подписки Azure. Включение логирования не предоставляет Microsoft или Anthropic доступ к вашему контенту сверх того, что необходимо для биллинга и работы сервиса.
</Note>

## Устранение неполадок

### Ошибки аутентификации

**Ошибка:** `401 Unauthorized` или `Invalid API key`

* **Решение:** Убедитесь, что ваш ключ API верен. Вы можете найти его на портале Foundry на вкладке **Details** вашего развертывания (в разделе **Build** > **Models**).
* **Решение:** Если вы используете Microsoft Entra ID, убедитесь, что ваш токен доступа действителен и не истёк. Токены обычно истекают через 1 час.

**Ошибка:** `403 Forbidden`

* **Решение:** У вашей учётной записи Azure могут отсутствовать необходимые разрешения. Убедитесь, что вам назначена соответствующая роль Azure RBAC (например, **Foundry User** (ранее Azure AI User) или **Cognitive Services User**).

### Ограничение скорости

**Ошибка:** `429 Too Many Requests`

* **Решение:** Вы превысили ваше «rate limit» (ограничение скорости). Реализуйте в вашем приложении экспоненциальную задержку и логику повторных попыток.
* **Решение:** Рассмотрите возможность запросить увеличение ограничений скорости через портал Azure или службу поддержки Azure.

#### Заголовки ограничения скорости

Foundry не включает в ответы стандартные заголовки ограничения скорости Anthropic (`anthropic-ratelimit-tokens-limit`, `anthropic-ratelimit-tokens-remaining`, `anthropic-ratelimit-tokens-reset`, `anthropic-ratelimit-input-tokens-limit`, `anthropic-ratelimit-input-tokens-remaining`, `anthropic-ratelimit-input-tokens-reset`, `anthropic-ratelimit-output-tokens-limit`, `anthropic-ratelimit-output-tokens-remaining` и `anthropic-ratelimit-output-tokens-reset`). Вместо этого управляйте ограничением скорости с помощью инструментов мониторинга Azure.

### Ошибки моделей и развертываний

**Ошибка:** `Model not found` или `Deployment not found`

* **Решение:** Убедитесь, что вы используете правильное имя развертывания. Если вы не создавали пользовательское развертывание, используйте идентификатор модели по умолчанию (например, claude-opus-5-5).
* **Решение:** Убедитесь, что модель/развертывание доступны в вашем регионе Azure.

**Ошибка:** `Invalid model parameter`

* **Решение:** Параметр model должен содержать имя вашего развертывания, которое можно настроить на портале Foundry. Убедитесь, что развертывание существует и правильно настроено.

## Следующие шаги

<CardGroup cols={2}>
  <Card title="Обзор функций" icon="stack" href="https://platform.claude.com/docs/ru/build-with-claude/overview">
    Изучите расширенные функции и возможности Claude.
  </Card>

  <Card title="Цены" icon="chart" href="https://platform.claude.com/docs/ru/about-claude/pricing#claude-in-microsoft-foundry-pricing">
    Узнайте о структуре цен Anthropic на модели и функции.
  </Card>

  <Card title="Устаревание моделей" icon="arrow-clockwise" href="https://platform.claude.com/docs/ru/about-claude/model-deprecations">
    По мере выхода более безопасных и более мощных моделей Anthropic регулярно выводит из эксплуатации старые. Ознакомьтесь со всеми устаревшими версиями API и рекомендуемыми заменами.
  </Card>
</CardGroup>

## Дополнительные ресурсы

<CardGroup cols={2}>
  <Card title="Каталог моделей Foundry" icon="grid" href="https://ai.azure.com/catalog/publishers/anthropic">
    Просмотрите модели Anthropic в каталоге Foundry.
  </Card>

  <Card title="Цены на Azure AI Foundry" icon="calculator" href="https://azure.microsoft.com/en-us/pricing/details/ai-foundry/#pricing">
    Ознакомьтесь с ценами Microsoft на Azure AI Foundry.
  </Card>

  <Card title="Цены на модели" icon="table" href="https://platform.claude.com/docs/ru/about-claude/pricing#model-pricing">
    Ознакомьтесь с ценами Anthropic для каждой модели.
  </Card>

  <Card title="Портал Azure" icon="cloud" href="https://portal.azure.com/">
    Управляйте вашими ресурсами Azure.
  </Card>
</CardGroup>
