---
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 event-stream. Для моделей, доступных через конечную точку 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 on 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>

<Warning>
  Последняя версия SDK по умолчанию отправляет версию API `2026-10-21`, в том числе через Amazon Bedrock. Модели, версионированные через ARN, из таблицы моделей на этой странице не поддерживают `2026-10-21` в Bedrock, и запросы к ним с этой версией могут возвращать ошибку 400. Если вы вызываете их через SDK, оставьте SDK на той версии, которую используете сейчас, и закрепите эту версию там, где вы её устанавливаете, чтобы последующая установка не обновила её. Пример с Boto3 задаёт `anthropic_version` в теле запроса, и это его не затрагивает.
</Warning>

Вызов 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:3.3.0")
      implementation("com.anthropic:anthropic-java-bedrock:3.3.0")
      ```

      ```xml Maven
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java</artifactId>
          <version>3.3.0</version>
      </dependency>
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java-bedrock</artifactId>
          <version>3.3.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 через [межрегиональный вывод](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.
```

Чтобы вызвать эти модели, передайте профиль вывода вместо базового идентификатора модели. Идентификатор профиля вывода — это базовый идентификатор модели с префиксом из столбца, отмеченного «Yes» в следующей таблице, например us.anthropic.claude-sonnet-4-5-20250929-v1:0. Вы также можете передать полный ARN профиля вывода в формате `arn:aws:bedrock:{region}:{account-id}:inference-profile/{inference-profile-id}`. Официальный список доступных профилей вывода от AWS см. в разделе [Поддерживаемые регионы и модели для профилей вывода](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 token» (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)
* [Размышления](https://platform.claude.com/docs/ru/build-with-claude/thinking)
* [Использование инструментов](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/overview), включая [инструмент 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)

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

* Источники входных данных (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# использует ID моделей с префиксом региона для глобальной маршрутизации
    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)
