Claude 模型的旧版 Amazon Bedrock 集成,使用 InvokeModel 和 Converse API 以及带 ARN 版本的模型标识符。
通过 Bedrock 调用 Claude 与直接在 Claude API 上调用 Claude 略有不同。本指南将引导您使用 Anthropic 的客户端 SDK 之一完成对 Bedrock 上 Claude 的 API 调用。
请注意,本指南假设您已经注册了 AWS 账户并配置了编程访问。
2.13.23 或更高。aws sts get-caller-identityAnthropic 的客户端 SDK 支持 Bedrock。您也可以直接使用 boto3 等 AWS SDK。
pip install -U "anthropic[bedrock]"前往 AWS Console > Bedrock > Model Access 并申请访问 Anthropic 模型。请注意,Anthropic 模型的可用性因区域而异。有关最新信息,请参阅 AWS 文档。
生命周期术语(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 可用推理配置文件的权威列表,请参阅推理配置文件支持的区域和模型。有关前缀如何影响路由和定价,请参阅全球端点与区域端点部分。
| 模型 | 基础 Bedrock 模型 ID | global | us | eu | jp | apac |
|---|---|---|---|---|---|---|
| Claude Opus 4.6 | 是 | 是 | 是 | 是 | 是 | |
| Claude Sonnet 4.6 | 是 | 是 | 是 | 是 | 否 | |
| Claude Sonnet 4.5 | 是 | 是 | 是 | 是 | 否 | |
| Claude Sonnet 4 已弃用。 | 是 | 是 | 是 | 否 | 是 | |
| Claude Sonnet 3.7 已停用。 | 否 | 否 | 否 | 否 | 否 | |
| Claude Opus 4.5 | 是 | 是 | 是 | 否 | 否 | |
| Claude Opus 4.1 已弃用。 | 否 | 是 | 否 | 否 | 否 | |
| Claude Opus 4 已停用。 | 否 | 否 | 否 | 否 | 否 | |
| Claude Haiku 4.5 | 是 | 是 | 是 | 否 | 否 | |
| Claude Haiku 3.5 已弃用。 | 否 | 是 | 否 | 否 | 否 |
以下示例展示了如何打印通过 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 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 可用性的完整功能列表,请参阅功能概览。
fallbacks 参数;请改用客户端回退模式)cache_control 字段;请改用显式缓存断点)computer_toolset_20260801 和 browser_toolset_20260801 目前在 Amazon Bedrock 上不可用;beta 版计算机使用工具版本仍然可用)Bedrock 通过 Converse API 和 InvokeModel API 均提供 PDF 支持。有关 PDF 处理能力和限制的详细信息,请参阅 Amazon Bedrock PDF 支持。
Converse API 用户的重要注意事项:
对话中途系统消息可通过 InvokeModel API 用于 Claude Fable 5 和 Claude Opus 4.8。如 API 模型 ID 下的说明所述,这些请求由与 Amazon Bedrock 中的 Claude 端点相同的基础设施提供服务。无需 beta 标头。此功能在 Claude Sonnet 5 上不可用;请改用顶层 system 字段。本页模型表中带 ARN 版本的模型也不支持此功能。
对于 Converse API 用户: Converse API 通过其顶层 system 参数接受系统指令。要在对话中途添加系统指令,请使用 InvokeModel API。
Claude Fable 5、Claude Opus 5、Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 5 和 Claude Sonnet 4.6 在 Amazon Bedrock 上拥有 100 万令牌的 context window(上下文窗口)。其他 Claude 模型,包括 Sonnet 4.5 和 Sonnet 4(已弃用),拥有 20 万令牌的上下文窗口。
Bedrock 将请求负载限制为 20 MB。发送大型文档或大量图像时,您可能会在达到令牌限制之前先达到此限制。
从 Claude Sonnet 4.5 及所有未来模型开始,Bedrock 提供两种端点类型:
区域端点的定价比全球端点高 10%。
全球端点(推荐):
区域端点(CRIS):
使用全球端点(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?