通过 Bedrock 调用 Claude 与直接在 Claude API 上调用 Claude 的方式略有不同。本指南将引导您使用 Anthropic 的客户端 SDK 之一完成对 Bedrock 上 Claude 的 API 调用。
请注意,本指南假设您已注册 AWS 账户并配置了编程访问权限。
2.13.23 或更高。aws sts get-caller-identityAnthropic 的客户端 SDK 支持 Bedrock。您也可以直接使用 AWS SDK,例如 boto3。
pip install -U "anthropic[bedrock]"前往 AWS 控制台 > Bedrock > Model Access 并申请访问 Anthropic 模型。请注意,Anthropic 模型的可用性因区域而异。有关最新信息,请参阅 AWS 文档。
生命周期术语(已弃用、已停用)的定义请参阅模型弃用。合作伙伴运营平台上的生命周期日期由合作伙伴设定,可能与 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.要调用这些模型,请传递推理配置文件而非基础模型 ID。推理配置文件 ID 是在基础模型 ID 前加上下表中标记为"Yes"的列中的前缀,例如 。您也可以传递完整的推理配置文件 ARN,格式为 arn:aws:bedrock:{region}:{account-id}:inference-profile/{inference-profile-id}。有关 AWS 可用推理配置文件的权威列表,请参阅推理配置文件支持的区域和模型。有关前缀如何影响路由和定价,请参阅全局端点与区域端点部分。
| 模型 | 基础 Bedrock 模型 ID | global | us | eu | jp | apac |
|---|---|---|---|---|---|---|
| Claude Opus 4.6 | Yes | Yes | Yes | Yes | Yes | |
| Claude Sonnet 4.6 | Yes | Yes | Yes | Yes | No | |
| Claude Sonnet 4.5 | Yes | Yes | Yes | Yes | No | |
| Claude Sonnet 4 已弃用。 | Yes | Yes | Yes | No | Yes | |
| Claude Sonnet 3.7 已停用。 | No | No | No | No | No | |
| Claude Opus 4.5 | Yes | Yes | Yes | No | No | |
| Claude Opus 4.1 已弃用。 | No | Yes | No | No | No | |
| Claude Opus 4 已停用。 | No | No | No | No | No | |
| Claude Haiku 4.5 | Yes | Yes | Yes | No | No | |
| Claude Haiku 3.5 已弃用。 | No | Yes | No | 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,
# 如果该变量不存在,则默认为 us-east-1。请注意,SDK 不会从 ~/.aws/config 读取区域配置。
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 进行身份验证。这在企业环境中非常有用,因为团队需要访问 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 可用性的完整功能列表,请参阅功能概览。
fallbacks 参数;请改用客户端回退模式)cache_control 字段;请改用显式缓存断点)Bedrock 通过 Converse API 和 InvokeModel API 均支持 PDF。有关 PDF 处理能力和限制的详细信息,请参阅 Amazon Bedrock PDF 支持。
Converse 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 万令牌的上下文窗口。其他 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?