---
title: Claude на Amazon Bedrock (Opus 4.6 и более ранние)
url: https://platform.claude.com/docs/ru/build-with-claude/claude-on-amazon-bedrock-legacy
description: Устаревшая интеграция Amazon Bedrock для моделей Claude, использующая API InvokeModel и Converse с идентификаторами моделей с ARN-версионированием.
---

<Note>
  На этой странице описана устаревшая интеграция Amazon Bedrock: API `InvokeModel` и `Converse` с идентификаторами моделей с ARN-версионированием и кодированием потока событий AWS. Для моделей, доступных на конечной точке Bedrock с Messages API, см. [Claude в Amazon Bedrock](https://platform.claude.com/docs/ru/build-with-claude/claude-in-amazon-bedrock), где используется Messages API по адресу `/anthropic/v1/messages` с потоковой передачей SSE. Альтернативу под управлением Anthropic с выставлением счетов через AWS Marketplace и, как правило, доступом к функциям в тот же день см. в разделе [Claude Platform на AWS](https://platform.claude.com/docs/ru/build-with-claude/claude-platform-on-aws). Существующие пользователи Bedrock могут воспользоваться [руководством по миграции](https://platform.claude.com/docs/ru/build-with-claude/claude-platform-on-aws#migrating-from-amazon-bedrock).
</Note>

Вызов Claude через Bedrock немного отличается от того, как вы вызывали бы Claude напрямую через Claude API. Это руководство проведёт вас через выполнение вызова API к Claude на Bedrock с использованием одного из [клиентских SDK](https://platform.claude.com/docs/ru/cli-sdks-libraries/overview) Anthropic.

Обратите внимание, что это руководство предполагает, что вы уже зарегистрировали [учётную запись AWS](https://portal.aws.amazon.com/billing/signup) и настроили программный доступ.

## Установка и настройка AWS CLI

1. [Установите версию AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) не ниже версии `2.13.23`.
2. Настройте свои учётные данные AWS с помощью команды AWS configure (см. [Настройка AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)) или найдите свои учётные данные, перейдя в раздел «Command line or programmatic access» на панели управления AWS и следуя инструкциям в модальном окне.
3. Убедитесь, что ваши учётные данные работают:

```bash AWS CLI
aws sts get-caller-identity
```

## Установка SDK для доступа к Bedrock

[Клиентские SDK](https://platform.claude.com/docs/ru/cli-sdks-libraries/overview) Anthropic поддерживают Bedrock. Вы также можете напрямую использовать AWS SDK, например `boto3`.

<Tabs>
  <Tab title="Python">
    ```bash
    pip install -U "anthropic[bedrock]"
    ```
  </Tab>

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

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

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

  <Tab title="Java">
    <CodeGroup>
      ```groovy Gradle
      implementation("com.anthropic:anthropic-java:2.73.0")
      implementation("com.anthropic:anthropic-java-bedrock:2.73.0")
      ```

      ```xml Maven
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java</artifactId>
          <version>2.73.0</version>
      </dependency>
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java-bedrock</artifactId>
          <version>2.73.0</version>
      </dependency>
      ```

      ```java Java
      import com.anthropic.client.AnthropicClient;
      import com.anthropic.client.okhttp.AnthropicOkHttpClient;
      import com.anthropic.bedrock.backends.BedrockBackend;
      import com.anthropic.models.messages.MessageCreateParams;
      import com.anthropic.models.messages.Message;
      import com.anthropic.models.messages.Model;

      public class BasicMessage {
          public static void main(String[] args) {
              AnthropicClient client = AnthropicOkHttpClient.builder()
                  .backend(BedrockBackend.fromEnv())
                  .build();

              MessageCreateParams params = MessageCreateParams.builder()
                  .model(Model.CLAUDE_OPUS_4_6)
                  .maxTokens(1024L)
                  .addUserMessage("What is the capital of France?")
                  .build();

              Message response = client.messages().create(params);
              response.content().stream()
                  .flatMap(block -> block.text().stream())
                  .forEach(textBlock -> System.out.println(textBlock.text()));
          }
      }
      ```
    </CodeGroup>
  </Tab>

  <Tab title="PHP">
    ```bash
    composer require anthropic-ai/sdk aws/aws-sdk-php
    ```
  </Tab>

  <Tab title="Ruby">
    ```bash
    # Gemfile
    gem "anthropic"
    gem "aws-sdk-bedrockruntime"
    ```
  </Tab>

  <Tab title="Boto3 (Python)">
    ```bash
    pip install "boto3>=1.28.59"
    ```
  </Tab>
</Tabs>

## Доступ к Bedrock

### Подписка на модели Anthropic

Перейдите в [AWS Console > Bedrock > Model Access](https://console.aws.amazon.com/bedrock/home?region=us-west-2#/modelaccess) и запросите доступ к моделям Anthropic. Обратите внимание, что доступность моделей Anthropic различается в зависимости от региона. Актуальную информацию см. в [документации AWS](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html).

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

<Note>
  Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5.5, Claude Sonnet 5, Claude Haiku 5.5, Claude Opus 4.8 и Claude Opus 4.7 доступны через `InvokeModel` в `bedrock-runtime`. Эти запросы обслуживаются той же инфраструктурой, что и конечная точка [Claude в Amazon Bedrock](https://platform.claude.com/docs/ru/build-with-claude/claude-in-amazon-bedrock). Для нативного формата запросов Messages API и полного паритета функций используйте ту страницу. Эти модели не включены в таблицу моделей на этой странице, поскольку у них нет идентификаторов моделей, версионированных через ARN.
</Note>

Термины жизненного цикла (Deprecated — устаревшая, Retired — выведенная из эксплуатации) определены в разделе [Устаревание моделей](https://platform.claude.com/docs/ru/about-claude/model-deprecations). Даты жизненного цикла на платформах, управляемых партнёрами, устанавливаются партнёром и могут отличаться от графика Claude API. Актуальную дату вывода из эксплуатации любой модели в Amazon Bedrock см. на [странице жизненного цикла моделей Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle.html).

AWS предлагает более новые модели Claude через [«cross-region inference» (межрегиональный инференс)](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html), а не через пропускную способность по требованию. Для этих моделей запрос, в котором передаётся базовый идентификатор модели, завершается ошибкой HTTP 400 следующего вида:

```text wrap
Invocation of model ID anthropic.claude-sonnet-4-5-20250929-v1:0 with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model.
```

Чтобы вызвать эти модели, передайте «inference profile» (профиль инференса) вместо базового идентификатора модели. Идентификатор профиля инференса — это базовый идентификатор модели с префиксом из столбца, отмеченного «Да» в следующей таблице, например us.anthropic.claude-sonnet-4-5-20250929-v1:0. Вы также можете передать полный ARN профиля инференса в формате `arn:aws:bedrock:{region}:{account-id}:inference-profile/{inference-profile-id}`. Официальный список доступных профилей инференса от AWS см. в разделе [Supported Regions and models for inference profiles](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html). О том, как префиксы влияют на маршрутизацию и ценообразование, см. раздел [Глобальные и региональные конечные точки](https://platform.claude.com/docs/ru/build-with-claude/claude-on-amazon-bedrock-legacy#global-vs-regional-endpoints).

| Model                                                                                                 | Base Bedrock model ID                       | `global` | `us` | `eu` | `jp` | `apac` |
| :---------------------------------------------------------------------------------------------------- | :------------------------------------------ | :------- | :--- | :--- | :--- | :----- |
| Claude Opus 4.6                                                                                       | `anthropic.claude-opus-4-6-v1`              | Yes      | Yes  | Yes  | Yes  | Yes    |
| Claude Opus 4.5                                                                                       | `anthropic.claude-opus-4-5-20251101-v1:0`   | Yes      | Yes  | Yes  | No   | No     |
| Claude Opus 4.1 ([deprecated](https://platform.claude.com/docs/ru/about-claude/model-deprecations))   | `anthropic.claude-opus-4-1-20250805-v1:0`   | No       | Yes  | No   | No   | No     |
| Claude Sonnet 4.6                                                                                     | `anthropic.claude-sonnet-4-6`               | Yes      | Yes  | Yes  | Yes  | No     |
| Claude Sonnet 4.5 ([deprecated](https://platform.claude.com/docs/ru/about-claude/model-deprecations)) | `anthropic.claude-sonnet-4-5-20250929-v1:0` | Yes      | Yes  | Yes  | Yes  | No     |
| Claude Sonnet 4 ([deprecated](https://platform.claude.com/docs/ru/about-claude/model-deprecations))   | `anthropic.claude-sonnet-4-20250514-v1:0`   | Yes      | Yes  | Yes  | No   | Yes    |
| Claude Haiku 4.5                                                                                      | `anthropic.claude-haiku-4-5-20251001-v1:0`  | Yes      | Yes  | Yes  | No   | No     |

### Список доступных моделей

Следующие примеры показывают, как вывести список всех моделей Claude, доступных через Bedrock:

<CodeGroup>
  ```bash AWS CLI
  aws bedrock list-foundation-models --region=us-west-2 --by-provider anthropic --query "modelSummaries[*].modelId"
  ```

  ```python Boto3 (Python)
  import boto3

  bedrock = boto3.client(service_name="bedrock")
  response = bedrock.list_foundation_models(byProvider="anthropic")

  for summary in response["modelSummaries"]:
      print(summary["modelId"])
  ```

  ```typescript TypeScript
  import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";

  const client = new BedrockClient({ region: "us-west-2" });

  const command = new ListFoundationModelsCommand({ byProvider: "anthropic" });
  const response = await client.send(command);

  if (response.modelSummaries) {
    for (const summary of response.modelSummaries) {
      console.log(summary.modelId);
    }
  }
  ```

  ```csharp C#
  using Amazon;
  using Amazon.Bedrock;
  using Amazon.Bedrock.Model;

  var client = new AmazonBedrockClient(RegionEndpoint.USWest2);

  var request = new ListFoundationModelsRequest
  {
      ByProvider = "anthropic"
  };

  var response = await client.ListFoundationModelsAsync(request);

  foreach (var summary in response.ModelSummaries)
  {
      Console.WriteLine(summary.ModelId);
  }
  ```

  ```go Go
  import (
  	"context"
  	"fmt"
  	"log"

  	"github.com/aws/aws-sdk-go-v2/config"
  	"github.com/aws/aws-sdk-go-v2/service/bedrock"
  )
  // ...
  	cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
  	if err != nil {
  		log.Fatal(err)
  	}

  	client := bedrock.NewFromConfig(cfg)

  	byProvider := "anthropic"
  	response, err := client.ListFoundationModels(context.TODO(), &bedrock.ListFoundationModelsInput{
  		ByProvider: &byProvider,
  	})
  	if err != nil {
  		log.Fatal(err)
  	}

  	for _, summary := range response.ModelSummaries {
  		fmt.Println(*summary.ModelId)
  	}
  ```

  ```java Java
  import software.amazon.awssdk.regions.Region;
  import software.amazon.awssdk.services.bedrock.BedrockClient;
  import software.amazon.awssdk.services.bedrock.model.ListFoundationModelsRequest;
  import software.amazon.awssdk.services.bedrock.model.ListFoundationModelsResponse;
  import software.amazon.awssdk.services.bedrock.model.FoundationModelSummary;

  public class ListAnthropicModels {
      public static void main(String[] args) {
          BedrockClient client = BedrockClient.builder()
              .region(Region.US_WEST_2)
              .build();

          ListFoundationModelsRequest request = ListFoundationModelsRequest.builder()
              .byProvider("anthropic")
              .build();

          ListFoundationModelsResponse response = client.listFoundationModels(request);

          for (FoundationModelSummary summary : response.modelSummaries()) {
              System.out.println(summary.modelId());
          }

          client.close();
      }
  }
  ```

  ```php PHP
  <?php

  use Aws\Bedrock\BedrockClient;

  $client = new BedrockClient([
      'region' => 'us-west-2',
      'version' => 'latest'
  ]);

  $result = $client->listFoundationModels([
      'byProvider' => 'anthropic'
  ]);

  foreach ($result['modelSummaries'] as $summary) {
      echo $summary['modelId'] . PHP_EOL;
  }
  ```

  ```ruby Ruby
  require "aws-sdk-bedrock"

  client = Aws::Bedrock::Client.new(region: "us-west-2")

  response = client.list_foundation_models({
    by_provider: "anthropic"
  })

  response.model_summaries.each do |summary|
    puts summary.model_id
  end
  ```
</CodeGroup>

### Выполнение запросов

Следующие примеры показывают, как генерировать текст с помощью Claude на Bedrock:

<Tabs>
  <Tab title="cURL">
    <Note>
      Вызов API `InvokeModel` с учётными данными AWS требует подписи запросов SigV4, которую SDK на других вкладках выполняют автоматически. Конечную точку Bedrock, которую можно вызвать самодостаточной командой cURL, см. в разделе [Claude в Amazon Bedrock](https://platform.claude.com/docs/ru/build-with-claude/claude-in-amazon-bedrock#making-your-first-request).
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      CLI `ant` не поддерживает Amazon Bedrock. Вместо этого используйте один из примеров SDK.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(
        # Аутентифицируйтесь, указав ключи ниже, либо используйте стандартные провайдеры учётных данных AWS, например
        # ~/.aws/credentials или переменные окружения "AWS_SECRET_ACCESS_KEY" и "AWS_ACCESS_KEY_ID".
        aws_access_key="<access key>",
        aws_secret_key="<secret key>",
        # Временные учётные данные можно использовать с aws_session_token.
        # Подробнее: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html.
        aws_session_token="<session_token>",
        # aws_region задаёт регион AWS, в который отправляется запрос. Если он не указан, SDK читает
        # AWS_REGION / AWS_DEFAULT_REGION, затем регион, настроенный для вашей сессии boto3 или профиля AWS
        # (включая ~/.aws/config), и выбрасывает ValueError, если регион определить не удалось.
        aws_region="us-west-2",
    )

    message = client.messages.create(
        model="global.anthropic.claude-opus-4-6-v1",
        max_tokens=256,
        messages=[{"role": "user", "content": "Hello, world"}],
    )
    print(message.content)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      // Аутентифицируйтесь, указав ключи ниже, либо используйте
      // стандартные провайдеры учётных данных AWS, например
      // ~/.aws/credentials или переменные окружения "AWS_SECRET_ACCESS_KEY" и
      // "AWS_ACCESS_KEY_ID".
      awsAccessKey: "<access key>",
      awsSecretKey: "<secret key>",

      // Временные учётные данные можно использовать с awsSessionToken.
      // Подробнее: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html.
      awsSessionToken: "<session_token>",

      // awsRegion изменяет регион AWS, в который отправляется
      // запрос. По умолчанию SDK читает AWS_REGION, а если
      // она не задана, использует us-east-1. Обратите внимание:
      // SDK не читает регион из ~/.aws/config.
      awsRegion: "us-west-2"
    });

    const message = await client.messages.create({
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{ role: "user", content: "Hello, world" }]
    });
    console.log(message);
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    AnthropicBedrockClient client = new(
        await AnthropicBedrockCredentialsHelper.FromEnv()
        ?? throw new InvalidOperationException("AWS credentials not configured.")
    );

    var response = await client.Messages.Create(new MessageCreateParams
    {
        Model = "global.anthropic.claude-opus-4-6-v1",
        MaxTokens = 256,
        Messages = [new() { Role = Role.User, Content = "Hello, world" }],
    });

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

  <Tab title="Go">
    ```go
    import (
    	"context"
    	"fmt"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    )
    // ...
    	// Использует цепочку поставщиков учётных данных AWS по умолчанию
    	client := anthropic.NewClient(
    		bedrock.WithLoadDefaultConfig(context.Background()),
    	)

    	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
    		Model:     "global.anthropic.claude-opus-4-6-v1",
    		MaxTokens: 256,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, world")),
    		},
    	})
    	if err != nil {
    		panic(err)
    	}
    	fmt.Println(message.Content)
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.Message;
    import com.anthropic.models.messages.MessageCreateParams;

    public class BedrockExample {

      public static void main(String[] args) {
        // Использует цепочку поставщиков учётных данных AWS по умолчанию
        AnthropicClient client = AnthropicOkHttpClient.builder()
          .backend(BedrockBackend.fromEnv())
          .build();

        Message message = client
          .messages()
          .create(
            MessageCreateParams.builder()
              .model("global.anthropic.claude-opus-4-6-v1")
              .maxTokens(256)
              .addUserMessage("Hello, world")
              .build()
          );

        System.out.println(message.content());
      }
    }
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::withCredentials(
        accessKeyId: getenv("AWS_ACCESS_KEY_ID"),
        secretAccessKey: getenv("AWS_SECRET_ACCESS_KEY"),
        region: 'us-west-2',
        securityToken: getenv("AWS_SESSION_TOKEN"),
    );

    $message = $client->messages->create(
        maxTokens: 256,
        messages: [
            ['role' => 'user', 'content' => 'Hello, world']
        ],
        model: 'global.anthropic.claude-opus-4-6-v1',
    );
    echo $message->content[0]->text;
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    client = Anthropic::BedrockClient.new

    message = client.messages.create(
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{role: "user", content: "Hello, world"}]
    )

    puts message.content.first.text
    ```
  </Tab>

  <Tab title="Boto3 (Python)">
    ```python
    import boto3
    import json

    bedrock = boto3.client(service_name="bedrock-runtime")
    body = json.dumps(
        {
            "max_tokens": 256,
            "messages": [{"role": "user", "content": "Hello, world"}],
            "anthropic_version": "bedrock-2023-05-31",
        }
    )

    response = bedrock.invoke_model(
        body=body, modelId="global.anthropic.claude-opus-4-6-v1"
    )

    response_body = json.loads(response.get("body").read())
    print(response_body.get("content"))
    ```
  </Tab>
</Tabs>

Подробнее см. в разделе [клиентские SDK](https://platform.claude.com/docs/ru/cli-sdks-libraries/overview), а также в [официальной документации Bedrock](https://docs.aws.amazon.com/bedrock/).

### Аутентификация с помощью bearer-токена

Вы можете проходить аутентификацию в Bedrock с помощью bearer-токенов вместо учётных данных AWS. Это полезно в корпоративных средах, где командам нужен доступ к Bedrock без управления учётными данными AWS, ролями IAM или разрешениями на уровне учётной записи.

Самый простой способ — задать переменную окружения `AWS_BEARER_TOKEN_BEDROCK`, которую SDK автоматически обнаруживает при получении учётных данных из окружения.

Чтобы передать токен программно:

<Tabs>
  <Tab title="cURL">
    <Note>
      В этом разделе показано, как настроить bearer-токен в клиенте SDK, который также считывает токен из переменной окружения `AWS_BEARER_TOKEN_BEDROCK`. Чтобы выполнять прямые HTTP-запросы с bearer-токеном, см. [документацию Amazon Bedrock](https://docs.aws.amazon.com/bedrock/).
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      CLI `ant` не поддерживает Amazon Bedrock. Используйте вместо этого один из примеров SDK.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(
        api_key="your-bearer-token",
        aws_region="us-west-2",
    )

    message = client.messages.create(
        model="us.anthropic.claude-sonnet-4-5-20250929-v1:0",
        max_tokens=1024,
        messages=[{"role": "user", "content": "Hello!"}],
    )
    print(message.content)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      apiKey: "your-bearer-token",
      awsRegion: "us-west-2"
    });

    const message = await client.messages.create({
      model: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      max_tokens: 1024,
      messages: [{ role: "user", content: "Hello!" }]
    });
    console.log(message);
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    var client = new AnthropicBedrockClient(
        new AnthropicBedrockApiTokenCredentials
        {
            BearerToken = "your-bearer-token",
            Region = "us-west-2",
        }
    );

    var response = await client.Messages.Create(new MessageCreateParams
    {
        Model = "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
        MaxTokens = 1024,
        Messages = [new() { Role = Role.User, Content = "Hello!" }],
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go
    import (
    	"context"
    	"fmt"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    	"github.com/aws/aws-sdk-go-v2/aws"
    )
    // ...
    	cfg := aws.Config{
    		Region:                  "us-west-2",
    		BearerAuthTokenProvider: bedrock.NewStaticBearerTokenProvider("your-bearer-token"),
    	}
    	client := anthropic.NewClient(
    		bedrock.WithConfig(cfg),
    	)

    	message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
    		Model:     "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
    		MaxTokens: 1024,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")),
    		},
    	})
    	if err != nil {
    		panic(err)
    	}
    	fmt.Println(message.Content[0].Text)
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.MessageCreateParams;

    // Вариант 1: задайте переменную окружения AWS_BEARER_TOKEN_BEDROCK и используйте fromEnv()
    AnthropicClient client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.fromEnv())
      .build();

    // Вариант 2: передайте токен программно
    client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.builder()
        .apiKey("your-bearer-token")
        .build())
      .build();

    MessageCreateParams params = MessageCreateParams.builder()
      .model("us.anthropic.claude-sonnet-4-5-20250929-v1:0")
      .maxTokens(1024)
      .addUserMessage("Hello!")
      .build();

    client.messages().create(params).content().stream()
      .flatMap(block -> block.text().stream())
      .forEach(textBlock -> System.out.println(textBlock.text()));
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::withApiKey('your-bearer-token', 'us-west-2');

    $message = $client->messages->create(
        maxTokens: 1024,
        messages: [
            ['role' => 'user', 'content' => 'Hello!']
        ],
        model: 'us.anthropic.claude-sonnet-4-5-20250929-v1:0',
    );
    echo $message->content[0]->text;
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    client = Anthropic::BedrockClient.new(
      api_key: "your-bearer-token",
      aws_region: "us-west-2"
    )

    message = client.messages.create(
      model: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      max_tokens: 1024,
      messages: [{role: "user", content: "Hello!"}]
    )
    puts message.content.first.text
    ```
  </Tab>
</Tabs>

## Журналирование активности

Bedrock предоставляет [сервис журналирования вызовов](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html), который позволяет записывать подсказки и ответы, связанные с вашим использованием.

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

<Note>
  Включение этого сервиса не даёт AWS или Anthropic никакого доступа к вашему контенту.
</Note>

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

Полный список функций с указанием доступности на Amazon Bedrock см. в разделе [Обзор функций](https://platform.claude.com/docs/ru/build-with-claude/overview).

### Основные поддерживаемые функции

* [Messages API](https://platform.claude.com/docs/ru/api/messages/create)
* [Кэширование подсказок](https://platform.claude.com/docs/ru/build-with-claude/prompt-caching) (prompt caching)
* [Размышления](https://platform.claude.com/docs/ru/build-with-claude/thinking)
* [Использование инструментов](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/overview) (tool use), включая [инструмент Bash](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/bash-tool), [инструмент использования компьютера](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/computer-use-tool), [инструмент памяти](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/memory-tool) и [инструмент текстового редактора](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/text-editor-tool)
* [Цитирование](https://platform.claude.com/docs/ru/build-with-claude/citations)
* [Структурированные выходные данные](https://platform.claude.com/docs/ru/build-with-claude/structured-outputs) — для моделей, указанных в примечании об Amazon Bedrock в разделе [Совместимость](https://platform.claude.com/docs/ru/build-with-claude/structured-outputs#compatibility)

### Неподдерживаемые функции

* Источники входных данных (URL-источники для изображений и документов, Files API)
* Серверные инструменты (выполнение кода, веб-поиск, веб-загрузка, advisor)
* Инфраструктура агентов (Agent Skills, коннектор MCP, программный вызов инструментов)
* Конечные точки API (Message Batches, Models, Admin, Compliance, Usage and Cost)
* Claude Managed Agents
* Серверный резервный переход ([параметр `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))
* Автоматическое кэширование подсказок ([поле `cache_control` верхнего уровня](https://platform.claude.com/docs/ru/build-with-claude/prompt-caching#automatic-caching); вместо этого используйте [явные точки разрыва кэша](https://platform.claude.com/docs/ru/build-with-claude/prompt-caching#explicit-cache-breakpoints))
* Наборы инструментов [использования компьютера](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/computer-use-tool) и [использования браузера](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/browser-use-tool) (`computer_toolset_20260801` и `browser_toolset_20260801` в настоящее время недоступны на Amazon Bedrock; бета-версии инструмента использования компьютера остаются доступными)

### Поддержка PDF на Bedrock

Поддержка PDF доступна на Bedrock как через Converse API, так и через InvokeModel API. Подробную информацию о возможностях и ограничениях обработки PDF см. в разделе [Поддержка PDF на Amazon Bedrock](https://platform.claude.com/docs/ru/build-with-claude/pdf-support#amazon-bedrock-pdf-support).

**Важные соображения для пользователей Converse API:**

* Визуальный анализ PDF (диаграммы, изображения, макеты) требует включения цитирования
* Без цитирования доступно только базовое извлечение текста
* Для полного контроля без принудительного цитирования используйте InvokeModel API

### Системные сообщения в середине разговора на Bedrock

[Системные сообщения в середине разговора](https://platform.claude.com/docs/ru/build-with-claude/mid-conversation-system-messages) доступны через InvokeModel API для Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Sonnet 5.5 и Claude Haiku 5.5. Как описано в примечании в разделе [Идентификаторы моделей API](https://platform.claude.com/docs/ru/build-with-claude/claude-on-amazon-bedrock-legacy#api-model-ids), эти запросы обслуживаются той же инфраструктурой, что и конечная точка [Claude в Amazon Bedrock](https://platform.claude.com/docs/ru/build-with-claude/claude-in-amazon-bedrock). Для системных сообщений в середине диалога бета-заголовок не требуется. Эта функция недоступна в Claude Sonnet 5. Используйте вместо этого поле `system` верхнего уровня. Она недоступна для моделей, версионированных через ARN, из таблицы моделей на этой странице.

Сообщение с `role: "system"` также может задавать `output_config.effort`, чтобы [изменить уровень усилий в середине разговора](https://platform.claude.com/docs/ru/build-with-claude/effort#change-effort-mid-conversation-beta) в Claude Fable 5.1 и Claude Opus 5.5. Эта функция находится в бета-версии: добавьте `mid-conversation-output-config-2026-07-01` в массив `anthropic_beta` в теле запроса. Без этого значения, а также в Claude Fable 5, Claude Opus 5 или Claude Opus 4.8 запрос возвращает ошибку 400: `messages.N.output_config: Extra inputs are not permitted`. В этой ошибке `N` — индекс сообщения `system` в `messages`.

**Для пользователей Converse API:** Converse API принимает системные инструкции через свой [параметр `system`](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) верхнего уровня. Чтобы добавлять системные инструкции в середине разговора, используйте InvokeModel API.

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

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 имеют [«context window» (контекстное окно) размером 1M токенов](https://platform.claude.com/docs/ru/build-with-claude/context-windows) в Amazon Bedrock. Другие модели Claude, включая Sonnet 4.5 (устаревшая) и Sonnet 4 (устаревшая), имеют контекстное окно размером 200k токенов.

Bedrock ограничивает размер полезной нагрузки запроса 20 МБ. При отправке больших документов или множества изображений вы можете достичь этого ограничения раньше, чем ограничения по токенам.

## Глобальные и региональные конечные точки

Начиная с **Claude Sonnet 4.5 и всех последующих моделей**, Bedrock предлагает два типа конечных точек:

* **Глобальные конечные точки:** динамическая маршрутизация для максимальной доступности
* **Региональные конечные точки:** гарантированная маршрутизация данных через определённые географические регионы

Региональные конечные точки стоят на 10% дороже глобальных.

<Note>
  Это относится только к Claude Sonnet 4.5 (устаревшая) и последующим моделям. Для более старых моделей (Claude Sonnet 4 (устаревшая) и более ранних) сохраняется существующая структура цен.
</Note>

### Когда использовать каждый вариант

**Глобальные конечные точки (рекомендуется):**

* Обеспечивают максимальную доступность и время безотказной работы
* Динамически направляют запросы в регионы с доступной мощностью
* Без ценовой надбавки
* Лучше всего подходят для приложений с гибкими требованиями к размещению данных

**Региональные конечные точки (CRIS):**

* Направляют трафик через определённые географические регионы
* Необходимы для соблюдения требований к размещению данных и нормативных требований
* Доступны для США, ЕС, Японии и Азиатско-Тихоокеанского региона
* Ценовая надбавка 10% отражает затраты на инфраструктуру для выделенной региональной мощности

### Реализация

**Использование глобальных конечных точек (по умолчанию для Opus 4.6, Sonnet 4.6 и Sonnet 4.5 (устаревшая)):**

Идентификаторы моделей Claude Opus 4.6, Sonnet 4.6 и Sonnet 4.5 (устаревшая) уже включают префикс `global.`:

<Tabs>
  <Tab title="cURL">
    <Note>
      Вызов API `InvokeModel` с учётными данными AWS требует подписи запросов SigV4, которую SDK на других вкладках выполняют автоматически. Конечную точку Bedrock, которую можно вызвать самодостаточной командой cURL, см. в разделе [Claude в Amazon Bedrock](https://platform.claude.com/docs/ru/build-with-claude/claude-in-amazon-bedrock#making-your-first-request).
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      CLI `ant` не поддерживает Amazon Bedrock. Используйте вместо этого один из примеров SDK.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(aws_region="us-west-2")

    message = client.messages.create(
        model="global.anthropic.claude-opus-4-6-v1",
        max_tokens=256,
        messages=[{"role": "user", "content": "Hello, world"}],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      awsRegion: "us-west-2"
    });

    const message = await client.messages.create({
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{ role: "user", content: "Hello, world" }]
    });
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    // Клиент Bedrock для C# использует идентификаторы моделей с префиксом региона для глобальной маршрутизации
    AnthropicBedrockClient client = new(
        await AnthropicBedrockCredentialsHelper.FromEnv()
        ?? throw new InvalidOperationException("AWS credentials not configured.")
    );

    var response = await client.Messages.Create(new MessageCreateParams
    {
        // Используйте префикс "global." для глобального межрегионального инференса
        Model = "global.anthropic.claude-opus-4-6-v1",
        MaxTokens = 256,
        Messages = [new() { Role = Role.User, Content = "Hello, world" }],
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go
    import (
    	"context"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    )
    // ...
    	// Использует стандартную цепочку поставщиков учётных данных AWS
    	client := anthropic.NewClient(
    		bedrock.WithLoadDefaultConfig(context.Background()),
    	)

    	message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
    		Model:     "global.anthropic.claude-opus-4-6-v1",
    		MaxTokens: 256,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, world")),
    		},
    	})
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.MessageCreateParams;

    // Использует стандартную цепочку поставщиков учётных данных AWS
    AnthropicClient client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.fromEnv())
      .build();

    var message = client
      .messages()
      .create(
        MessageCreateParams.builder()
          .model("global.anthropic.claude-opus-4-6-v1")
          .maxTokens(256)
          .addUserMessage("Hello, world")
          .build()
      );
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::fromEnvironment();

    $message = $client->messages->create(
        maxTokens: 256,
        messages: [
            ['role' => 'user', 'content' => 'Hello, world']
        ],
        model: 'global.anthropic.claude-opus-4-6-v1',
    );
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    # Учётные данные по умолчанию определяют регион из переменной окружения AWS_REGION
    client = Anthropic::BedrockClient.new

    message = client.messages.create(
      # Используйте префикс "global." для глобального межрегионального инференса
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{role: "user", content: "Hello, world"}]
    )
    ```
  </Tab>
</Tabs>

**Использование региональных конечных точек (CRIS):**

Чтобы использовать региональные конечные точки, замените префикс `global.` региональным префиксом, например `us.`:

<Tabs>
  <Tab title="cURL">
    <Note>
      Вызов API `InvokeModel` с учётными данными AWS требует подписи запросов SigV4, которую SDK на других вкладках выполняют автоматически. Конечную точку Bedrock, которую можно вызвать самодостаточной командой cURL, см. в разделе [Claude в Amazon Bedrock](https://platform.claude.com/docs/ru/build-with-claude/claude-in-amazon-bedrock#making-your-first-request).
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      CLI `ant` не поддерживает Amazon Bedrock. Используйте вместо этого один из примеров SDK.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(aws_region="us-west-2")

    # Используется региональная конечная точка США (CRIS)
    message = client.messages.create(
        model="us.anthropic.claude-opus-4-6-v1",  # Regional prefix
        max_tokens=256,
        messages=[{"role": "user", "content": "Hello, world"}],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      awsRegion: "us-west-2"
    });

    // Используется региональная конечная точка США (CRIS)
    const message = await client.messages.create({
      model: "us.anthropic.claude-opus-4-6-v1", // Regional prefix
      max_tokens: 256,
      messages: [{ role: "user", content: "Hello, world" }]
    });
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    AnthropicBedrockClient client = new(
        new AnthropicBedrockPrivateKeyCredentials { Region = "us-west-2" }
    );

    // Используется региональная конечная точка США (CRIS)
    var response = await client.Messages.Create(new MessageCreateParams
    {
        Model = "us.anthropic.claude-opus-4-6-v1", // Regional prefix
        MaxTokens = 256,
        Messages = [new() { Role = Role.User, Content = "Hello, world" }],
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go
    import (
    	"context"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    )
    // ...
    	// Использует стандартную цепочку поставщиков учётных данных AWS
    	client := anthropic.NewClient(
    		bedrock.WithLoadDefaultConfig(context.Background()),
    	)

    	// Используется региональная конечная точка США (CRIS)
    	message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
    		Model:     "us.anthropic.claude-opus-4-6-v1", // Regional prefix
    		MaxTokens: 256,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, world")),
    		},
    	})
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.MessageCreateParams;

    // Использует стандартную цепочку поставщиков учётных данных AWS
    AnthropicClient client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.fromEnv())
      .build();

    // Используется региональная конечная точка США (CRIS)
    var message = client
      .messages()
      .create(
        MessageCreateParams.builder()
          .model("us.anthropic.claude-opus-4-6-v1") // Regional prefix
          .maxTokens(256)
          .addUserMessage("Hello, world")
          .build()
      );
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::fromEnvironment();

    $message = $client->messages->create(
        maxTokens: 256,
        messages: [
            ['role' => 'user', 'content' => 'Hello, world']
        ],
        model: 'us.anthropic.claude-opus-4-6-v1',
    );
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    # Используется региональная конечная точка США (CRIS)
    client = Anthropic::BedrockClient.new(aws_region: "us-west-2")

    message = client.messages.create(
      model: "us.anthropic.claude-opus-4-6-v1", # Regional prefix
      max_tokens: 256,
      messages: [{role: "user", content: "Hello, world"}]
    )
    ```
  </Tab>
</Tabs>

<Note>
  **Claude Mythos Preview** — это исследовательская предварительная модель, доступная приглашённым клиентам в Amazon Bedrock. Подробнее см. [Project Glasswing](https://anthropic.com/glasswing).
</Note>

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

* **Цены Bedrock:** [страница цен Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/)
* **Документация AWS по ценам:** [руководство по ценам Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/bedrock-pricing.html)
* **Публикация в блоге AWS:** [Introducing Claude Sonnet 4.5 in Amazon Bedrock](https://aws.amazon.com/blogs/aws/introducing-claude-sonnet-4-5-in-amazon-bedrock-anthropics-most-intelligent-model-best-for-coding-and-complex-agents/)
* **Сведения о ценах Anthropic:** [цены на облачных платформах](https://platform.claude.com/docs/ru/about-claude/pricing#cloud-platform-pricing)
