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 前加上下表中标记为"Yes"的列所对应的前缀,例如 。您也可以传递完整的推理配置文件 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"(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"}],
)其他资源
- Bedrock 定价: Amazon Bedrock 定价页面
- AWS 定价文档: Bedrock 定价指南
- AWS 博客文章: 在 Amazon Bedrock 中推出 Claude Sonnet 4.5
- Anthropic 定价详情: 云平台定价
Was this page helpful?