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
- 安装 AWS CLI,版本需为
2.13.23或更高。 - 使用 AWS configure 命令配置您的 AWS 凭证(请参阅配置 AWS CLI),或者在 AWS 控制面板中导航至"Command line or programmatic access"(命令行或编程访问),并按照弹出窗口中的说明查找您的凭证。
- 验证您的凭证是否有效:
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 前加上下表中标记为"是"的列所对应的前缀,例如 。您也可以传入完整的推理配置文件 ARN,格式为 arn:aws:bedrock:{region}:{account-id}:inference-profile/{inference-profile-id}。有关 AWS 官方提供的可用推理配置文件列表,请参阅推理配置文件支持的区域和模型。要了解前缀如何影响路由和定价,请参阅全球端点与区域端点部分。
| Model | Base Bedrock model ID | global | us | eu | jp | apac |
|---|---|---|---|---|---|---|
| Claude Opus 4.6 | Yes | Yes | Yes | Yes | Yes | |
| Claude Opus 4.5 | Yes | Yes | Yes | No | No | |
| Claude Opus 4.1 (deprecated) | No | Yes | No | No | No | |
| Claude Sonnet 4.6 | Yes | Yes | Yes | Yes | No | |
| Claude Sonnet 4.5 (deprecated) | Yes | Yes | Yes | Yes | No | |
| Claude Sonnet 4 (deprecated) | Yes | Yes | Yes | No | Yes | |
| Claude Haiku 4.5 | Yes | Yes | Yes | No | No |
列出可用模型
以下示例展示了如何打印通过 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"(持有者令牌)而不是 AWS 凭证向 Bedrock 进行身份验证。这在企业环境中非常有用,团队无需管理 AWS 凭证、IAM 角色或账户级权限即可访问 Bedrock。
最简单的方法是设置 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 可用性的完整功能列表,请参阅功能概览。
支持的主要功能
- Messages API
- 提示缓存
- 思考
- 工具使用,包括 Bash 工具、计算机使用工具、记忆工具和文本编辑器工具
- 引用
- 结构化输出,适用于其兼容性部分中 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 下的说明所述,这些请求由与 Amazon Bedrock 中的 Claude 端点相同的基础设施提供服务。对话中途系统消息不需要 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 令牌的上下文窗口。其他 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"}],
)其他资源
- Bedrock 定价: Amazon Bedrock 定价页面
- AWS 定价文档: Bedrock 定价指南
- AWS 博客文章: 在 Amazon Bedrock 中推出 Claude Sonnet 4.5
- Anthropic 定价详情: 云平台定价
Was this page helpful?