Claude Platform Docs
Messages云平台上的 Claude

Amazon Bedrock 上的 Claude(Opus 4.6 及更早版本)

适用于 Claude 模型的旧版 Amazon Bedrock 集成,使用 InvokeModel 和 Converse API 以及带 ARN 版本的模型标识符。

通过 Bedrock 调用 Claude 与直接在 Claude API 上调用 Claude 的方式略有不同。本指南将引导您使用 Anthropic 的某个客户端 SDK 完成对 Bedrock 上 Claude 的 API 调用。

请注意,本指南假设您已经注册了 AWS 账户并配置了编程访问。

安装和配置 AWS CLI

  1. 安装 AWS CLI,版本需为 2.13.23 或更高。
  2. 使用 AWS configure 命令配置您的 AWS 凭证(请参阅配置 AWS CLI),或者在 AWS 控制面板中导航到"Command line or programmatic access"并按照弹出窗口中的说明查找您的凭证。
  3. 验证您的凭证是否有效:
AWS CLI
aws sts get-caller-identity

安装用于访问 Bedrock 的 SDK

Anthropic 的客户端 SDK 支持 Bedrock。您也可以直接使用 boto3 等 AWS SDK。

pip install -U "anthropic[bedrock]"

访问 Bedrock

订阅 Anthropic 模型

前往 AWS Console > Bedrock > Model Access 并申请访问 Anthropic 模型。请注意,Anthropic 模型的可用性因区域而异。有关最新信息,请参阅 AWS 文档。

API 模型 ID

生命周期术语(Deprecated、Retired)的定义请参阅模型弃用。合作伙伴运营平台上的生命周期日期由合作伙伴设定,可能与 Claude API 的时间表不同。有关 Amazon Bedrock 上任何模型的当前停用日期,请参阅 Amazon Bedrock 的模型生命周期页面。

AWS 通过 "cross-region inference"(跨区域推理)而非按需吞吐量提供较新的 Claude 模型(请参阅跨区域推理)。对于这些模型,传递基础模型 ID 的请求会失败,并返回类似以下内容的 HTTP 400 错误:

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)而不是基础模型 ID。推理配置文件 ID 是在基础模型 ID 前加上下表中标记为"Yes"的列所对应的前缀,例如 。您也可以传递完整的推理配置文件 ARN,格式为 arn:aws:bedrock:{region}:{account-id}:inference-profile/{inference-profile-id}。有关 AWS 提供的可用推理配置文件的权威列表,请参阅推理配置文件支持的区域和模型。要了解这些前缀如何影响路由和定价,请参阅全局端点与区域端点部分。

ModelBase Bedrock model IDglobaluseujpapac
Claude Opus 4.6YesYesYesYesYes
Claude Opus 4.5YesYesYesNoNo
Claude Opus 4.1 (deprecated)NoYesNoNoNo
Claude Sonnet 4.6YesYesYesYesNo
Claude Sonnet 4.5 (deprecated)YesYesYesYesNo
Claude Sonnet 4 (deprecated)YesYesYesNoYes
Claude Haiku 4.5YesYesYesNoNo

列出可用模型

以下示例展示了如何打印通过 Bedrock 可用的所有 Claude 模型列表:

import boto3

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

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

发送请求

以下示例展示了如何在 Bedrock 上使用 Claude 生成文本:

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)

更多详细信息请参阅客户端 SDK以及 Bedrock 官方文档。

Bearer 令牌身份验证

您可以使用 "bearer token"(Bearer 令牌)而不是 AWS 凭证向 Bedrock 进行身份验证。这在企业环境中非常有用,因为团队需要访问 Bedrock,但无需管理 AWS 凭证、IAM 角色或账户级权限。

最简单的方法是设置 AWS_BEARER_TOKEN_BEDROCK 环境变量,SDK 在从环境中解析凭证时会自动检测该变量。

要以编程方式提供令牌:

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)

活动日志记录

Bedrock 提供调用日志记录服务,允许您记录与您的使用相关的提示和补全内容。

Anthropic 建议您至少以 30 天滚动周期记录您的活动,以便了解您的活动并调查任何潜在的滥用行为。

功能支持

有关包含 Amazon Bedrock 可用性的完整功能列表,请参阅功能概览。

支持的主要功能

不支持的功能

  • 输入源(图像和文档的 URL 源、Files API)
  • 服务器端工具(代码执行、网络搜索、网页获取、advisor)
  • 智能体基础设施(Agent Skills、MCP 连接器、程序化工具调用)
  • API 端点(Message Batches、Models、Admin、Compliance、Usage and Cost)
  • Claude Managed Agents
  • 服务器端回退(fallbacks 参数;请改用客户端回退模式)
  • 自动提示缓存(顶层 cache_control 字段;请改用显式缓存断点)
  • 计算机使用和浏览器使用工具集(computer_toolset_20260801 和 browser_toolset_20260801 目前在 Amazon Bedrock 上不可用;beta 版计算机使用工具版本仍然可用)

Bedrock 上的 PDF 支持

Bedrock 通过 Converse API 和 InvokeModel API 提供 PDF 支持。有关 PDF 处理功能和限制的详细信息,请参阅 Amazon Bedrock PDF 支持。

Converse API 用户的重要注意事项:

  • 可视化 PDF 分析(图表、图像、布局)需要启用引用
  • 如果不启用引用,则只能进行基本的文本提取
  • 如需在不强制启用引用的情况下获得完全控制,请使用 InvokeModel API

Bedrock 上的对话中系统消息

对话中系统消息可通过 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 模型 ID 下的说明所述,这些请求由与 Claude in Amazon Bedrock 端点相同的基础设施提供服务。对话中系统消息不需要 beta 标头。此功能在 Claude Sonnet 5 上不可用,请改用顶层 system 字段。对于本页模型表中带 ARN 版本的模型,此功能也不可用。

在 Claude Fable 5.1 和 Claude Opus 5.5 上,role: "system" 消息还可以设置 output_config.effort 以在对话中更改 effort。此功能处于 beta 阶段:请将 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 参数接受系统指令。要在对话中添加系统指令,请使用 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 在 Amazon Bedrock 上具有 1M 令牌的 "context window"(上下文窗口)。其他 Claude 模型,包括 Sonnet 4.5(已弃用)和 Sonnet 4(已弃用),具有 200k 令牌的上下文窗口。

Bedrock 将请求负载限制为 20 MB。发送大型文档或大量图像时,您可能会在达到令牌限制之前先达到此限制。

全局端点与区域端点

从 Claude Sonnet 4.5 及所有未来模型开始,Bedrock 提供两种端点类型:

  • 全局端点: 动态路由以实现最大可用性
  • 区域端点: 保证数据通过特定地理区域路由

区域端点的价格比全局端点高 10%。

何时使用每种选项

全局端点(推荐):

  • 提供最大的可用性和正常运行时间
  • 将请求动态路由到有可用容量的区域
  • 无价格溢价
  • 最适合数据驻留要求灵活的应用程序

区域端点(CRIS):

  • 通过特定地理区域路由流量
  • 满足数据驻留和合规要求时必需
  • 适用于美国、欧盟、日本和亚太地区
  • 10% 的价格溢价反映了专用区域容量的基础设施成本

实现

使用全局端点(Opus 4.6、Sonnet 4.6 和 Sonnet 4.5(已弃用)的默认设置):

Claude Opus 4.6、Sonnet 4.6 和 Sonnet 4.5(已弃用)的模型 ID 已包含 global. 前缀:

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"}],
)

使用区域端点(CRIS):

要使用区域端点,请将 global. 前缀替换为区域前缀,例如 us.:

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"}],
)

其他资源

Was this page helpful?