用途
Amazon Bedrock 通过统一 API 提供对多家 AI 公司基础模型(Foundation Models,FM)的访问,用于构建生成式 AI 应用,涵盖文本生成、嵌入向量(embeddings)与图像生成等能力。
主要能力
基础模型:可通过 Bedrock 使用的基础模型包括:
- Claude(Anthropic):文本生成、分析、编码
- Nova / Titan(Amazon):文本、多模态、嵌入
- GPT / gpt-oss(OpenAI):文本生成、推理
- Llama(Meta):开放权重文本生成
- Mistral:高效文本生成
- Stable Image(Stability AI):图像生成与编辑
端点:
bedrock-runtime.{region}.amazonaws.com(推荐):提供 InvokeModel、Converse、Anthropic Messages(/anthropic)、OpenAI Responses/Chat Completions(/openai/v1);支持 Guardrails、跨区域推理、提示路由、应用推理配置文件。bedrock-mantle.{region}.api.aws:提供 OpenAI Responses/Chat Completions(/openai/v1)、Anthropic Messages;支持服务端工具(Web Search)、background=true 异步、Projects/Workspaces、对仅支持 CRIS 的模型提供单区域访问。
两个端点每 Token 价格相同;认证通过 SigV4 或 Bedrock API key(AWS_BEARER_TOKEN_BEDROCK)。IAM 权限方面:bedrock-runtime 使用 bedrock:InvokeModel,bedrock-mantle 使用 bedrock-mantle:CreateInference。bedrock-runtime 上的 Responses API 仅支持同步,且没有服务端工具。
模型访问:在商业区域,所有无服务器模型的访问默认启用(无需控制台选择加入)。在 GovCloud (US) 中,模型仍需在 Model access 页面手动启用(第三方模型也在关联的商业账户中启用):
- 首次调用第三方模型会通过 AWS Marketplace 自动订阅(最长 15 分钟);调用方需要
aws-marketplace:Subscribe、Unsubscribe、ViewSubscriptions权限。 - bedrock-runtime 上的 Anthropic 模型需要每个账户/组织一次性提交用例表单(put-use-case-for-model-access)。
- 调用即表示接受 EULA;要阻止某个模型,需同时拒绝其上的
bedrock:InvokeModel和bedrock:InvokeModelWithResponseStream(SCP/IAM);ConverseStream 等流式 API 使用后者。仅拒绝aws-marketplace:Subscribe无法阻止首次使用。
推理配置文件与模型生命周期:较新的模型(如 Claude Sonnet 5)在 bedrock-runtime 上没有区域内按需 ID,需使用 geo(us.、eu.、au.)或 global. 推理配置文件 ID 作为 modelId。生命周期为 Active -> Legacy -> EOL(见 get-foundation-model 中的 modelLifecycle)。Legacy:不再支持新的预置吞吐量、微调或配额增加;EOL:请求失败。模型卡会列出“EOL no sooner than”日期,固定模型 ID 前应检查。
知识库与 Agent:托管知识库(type: MANAGED)由 Bedrock 负责存储、索引与检索,是唯一支持 AgenticRetrieveStream(查询分解、迭代检索、可通过 memoryConfiguration 选用 AgentCore Memory)的类型。原生多模态托管知识库使用 TwelveLabs Marengo Embed 3.0(twelvelabs.marengo-embed-3-0-v1:0)直接嵌入视频/音频/图像,仅能通过 Retrieve 以文本查询(不支持 RetrieveAndGenerate)。Bedrock Agents Classic 处于维护模式:自 2026 年 7 月 30 日起对新账户关闭(无先前 12 个月使用记录时 CreateAgent/InvokeInlineAgent 返回 403),模型目录冻结。新 Agent 应基于 Amazon Bedrock AgentCore 构建。
推理类型:
- On-Demand:可变工作负载,按 Token 计费
- Provisioned Throughput:稳定高吞吐,按小时承诺
- Batch Inference:异步大规模,按 Token 折扣计费
使用方式
调用模型(文本生成):
AWS CLI:
aws bedrock-runtime invoke-model \
--model-id us.anthropic.claude-sonnet-5 \
--content-type application/json \
--accept application/json \
--cli-binary-format raw-in-base64-out \
--body '{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 4096,
"messages": [
{"role": "user", "content": "Explain AWS Lambda in 3 sentences."}
]
}' \
response.json
boto3 示例(invoke_claude 函数)展示了如何调用 Claude、跳过 thinking 块、处理 max_tokens 截断。流式响应使用 invoke_model_with_response_stream。嵌入向量使用 amazon.titan-embed-text-v2:0 模型。多轮对话通过维护 messages 列表实现。
列出可用模型:
aws bedrock list-foundation-models \
--query 'modelSummaries[*].[modelId,modelName,providerName]' \
--output table
检查模型访问:使用 aws bedrock get-foundation-model-availability、put-use-case-for-model-access、list-foundation-model-agreement-offers、create-foundation-model-agreement。
计数 Token:aws bedrock-runtime count-tokens(免费,返回 inputTokens;并非所有模型都支持)。
CLI 参考:控制面命令包括 list-foundation-models、get-foundation-model、list-custom-models、create-model-customization-job、list-provisioned-model-throughputs、get-foundation-model-availability、put-use-case-for-model-access、list-inference-profiles、create-model-invocation-job。数据面命令包括 invoke-model、converse、count-tokens、apply-guardrail。InvokeModelWithResponseStream 与 ConverseStream 仅限 SDK(不在 AWS CLI v2 中)。Bedrock Agent Runtime 命令包括 retrieve、retrieve-and-generate;InvokeAgent、RetrieveAndGenerateStream、AgenticRetrieveStream 仅限 SDK。
适用场景
- 构建文本生成、分析、编码类生成式 AI 应用
- 生成嵌入向量用于检索与语义搜索
- 图像生成与编辑
- 多轮对话应用
- 大规模异步批量推理
- 稳定高吞吐的预置吞吐量工作负载
- 基于托管知识库的 RAG 查询
限制与注意事项
成本优化:为简单任务选用较小模型;设置 max_tokens 限制输出长度;缓存重复查询响应;批量处理时使用批量推理;通过 CloudWatch 告警监控用量;在数据驻留允许时使用 global 推理配置文件(比 geo 配置文件便宜约 10%)。Claude Sonnet 5/Opus 5 默认思考,thinking token 按输出计费;如不需要可传 "thinking": {"type": "disabled"} 或降低 output_config.effort,并重新审视 max_tokens(它同时限制 thinking 与文本)。
性能:长输出使用流式;复用 boto3 客户端;就近区域部署;高吞吐使用预置吞吐量;默认使用 bedrock-runtime,仅在需要 mantle 独有功能时使用 bedrock-mantle。
安全:最小权限 IAM;使用 VPC 端点;实现 Guardrails 内容过滤;用 CloudTrail 审计模型调用。mantle 的 Web Search 需设置 external_web_access: false 以将 Fetch 保持在 AWS 边界内;AmazonBedrockFullAccess 缺少 bedrock-websearch:ExternalWebAccess,默认 true 会导致 Fetch 静默失败。固定使用 Active 模型,在 EOL 前从 Legacy 模型迁移。
IAM 权限:文档提供了示例策略,包含对推理配置文件 ARN 与基础模型 ARN 的 InvokeModel/InvokeModelWithResponseStream 授权,以及基于 bedrock:InferenceProfileArn 条件的跨区域授权。推理配置文件需要同时拥有配置文件 ARN 及每个目标区域的基础模型访问权限(用 aws bedrock get-inference-profile 的 models 字段列出)。拒绝区域的 SCP 必须允许这些目标区域(或通过 bedrock:InferenceProfileArn 豁免)。
故障排查:
- AccessDeniedException 常见原因:首次使用第三方模型缺少
aws-marketplace:Subscribe;未提交 Anthropic 用例表单;IAM 策略缺少bedrock:InvokeModel或推理配置文件的目标区域基础模型 ARN;模型 ID 或区域错误;Bedrock Agents Classic 维护模式 403。可用get-foundation-model-availability与iam simulate-principal-policy调试。 - ModelNotReadyException:模型仍在预置或暂时不可用,需实现指数退避重试。