透過 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 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 加上下表中標記為「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 萬 token 的上下文視窗。其他 Claude 模型,包括 Sonnet 4.5 和 Sonnet 4(已棄用),具有 20 萬 token 的上下文視窗。
Bedrock 將請求酬載限制為 20 MB。當傳送大型文件或大量圖片時,您可能會在達到 token 限制之前先達到此限制。
從 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?