OpenAI 与 Azure 的独家绑定关系在一个月前被打破,如今效果已经落地——GPT-5.5、GPT-5.4 以及 Codex 正式在 Amazon Bedrock 上达到 GA(General Availability)。对于已经在 AWS 上有投入的团队来说,这意味着 OpenAI 模型终于可以纳入现有的云预算和合规框架,而不必另开一条 Azure 账单。
计费模式的变化值得关注
三个关键计费细节直接影响采购决策:
- 定价与 OpenAI 直连一致——不会因为走 Bedrock 而加价,也不会打折。这意味着选择 Bedrock 的理由不在价格,而在运维整合。
- 用量计入 AWS Commitment——如果你签了 EDP(Enterprise Discount Program)或 CPUD(Compute Pricing Discount),Bedrock 上的 OpenAI 调用也纳入消费承诺。这对预算统一管理是实质利好。
- Codex 改为按 token 计费,取消席位费——原来 Codex 是按 seat 收费,现在变成 pay-per-token。小团队或间歇使用场景的成本会明显下降;高频重度用户则需要重新测算。
GovCloud 里的第一个 OpenAI 模型
GPT-5.4 是目前唯一进入 AWS GovCloud 的 OpenAI 模型。GovCloud 面向美国政府及合规要求严格的客户(FedRAMP、ITAR 等),此前 OpenAI 模型一直缺席这一区域。如果你的组织受合规约束必须把数据留在 GovCloud,GPT-5.4 是第一个可以合法调用的 OpenAI 选项。注意:GPT-5.5 和 Codex 目前不在 GovCloud,选型时要核对区域支持列表。
在 Bedrock 上调用 GPT-5.5 的实操
下面给出一个完整的 AWS CLI 调用示例,以及对应的 Python Boto3 代码片段。前提条件:
- 已在 AWS Console 中启用 Bedrock,并在模型访问页面勾选 OpenAI 的 GPT-5.5。
- IAM 角色/用户有
bedrock:InvokeModel权限。 - AWS CLI 已配置好凭证和区域(商用区域,如
us-east-1)。
AWS CLI 方式
# 先确认模型 ID——Bedrock 中 OpenAI 模型的 ID 格式为 openai.model-name
# GPT-5.5 的模型 ID 为 openai.gpt-5.5(以 Bedrock 控制台实际显示为准)
aws bedrock-runtime invoke-model \
--region us-east-1 \
--model-id openai.gpt-5.5 \
--content-type application/json \
--accept application/json \
--body '{
"messages": [
{"role": "system", "content": "你是一个后端架构顾问,用中文回答。"},
{"role": "user", "content": "帮我对比 gRPC 和 REST 在微服务内部通信的优劣,各给三个场景。"}
],
"max_tokens": 1024,
"temperature": 0.3
}' \
/tmp/gpt55_response.json
# 查看返回
cat /tmp/gpt55_response.json | python3 -m json.tool
如果你的 CLI 版本较旧,
invoke-model可能需要替换为converse命令,具体参考当前 AWS CLI 文档。
Python Boto3 方式
import boto3
import json
client = boto3.client("bedrock-runtime", region_name="us-east-1")
model_id = "openai.gpt-5.5" # 以 Bedrock 控制台实际 ID 为准
body = {
"messages": [
{"role": "system", "content": "你是一个后端架构顾问,用中文回答。"},
{"role": "user", "content": "帮我对比 gRPC 和 REST 在微服务内部通信的优劣,各给三个场景。"}
],
"max_tokens": 1024,
"temperature": 0.3,
}
response = client.invoke_model(
modelId=model_id,
contentType="application/json",
accept="application/json",
body=json.dumps(body),
)
result = json.loads(response["body"].read())
print(result["choices"][0]["message"]["content"])
运行前确认:boto3 版本 ≥ 1.28,否则可能缺少 bedrock-runtime endpoint。
Codex 按量计费调用示例
Codex 现在按 token 计费,调用方式与聊天模型类似,但请求体结构面向代码生成场景:
codex_body = {
"messages": [
{"role": "system", "content": "You are a code generation assistant."},
{"role": "user", "content": "Write a Python FastAPI endpoint that accepts a JSON payload with fields 'name' and 'email', validates them with Pydantic, and stores to PostgreSQL via SQLAlchemy."},
],
"max_tokens": 2048,
"temperature": 0.2,
}
response = client.invoke_model(
modelId="openai.codex", # 以 Bedrock 控制台实际 ID 为准
contentType="application/json",
accept="application/json",
body=json.dumps(codex_body),
)
result = json.loads(response["body"].read())
print(result["choices"][0]["message"]["content"])
因为没有席位费,你可以把 Codex 嵌入 CI 流程做自动代码补全或测试生成,只在触发时才产生费用。
选型决策清单
在决定是否把 OpenAI 模型迁到 Bedrock 之前,逐项核对:
| 维度 | 问自己 |
|---|---|
| 预算整合 | 是否希望所有 AI 调用统一走 AWS 账单和承诺? |
| 合规区域 | 是否必须使用 GovCloud?如果是,目前只有 GPT-5.4 可选。 |
| 延迟与路由 | Bedrock 的推理端点在 AWS 区域内,直连 OpenAI 则走 OpenAI 自有基础设施。对延迟敏感的场景需要实测对比。 |
| 模型覆盖 | Bedrock 上是否已开放你需要的全部 OpenAI 模型变体(如 vision、fine-tune)?缺一个就可能仍需双栈。 |
| Codex 使用频率 | 低频 → 按量计费更划算;高频 → 算一下 token 成本是否低于原来的席位费。 |
| 运维复杂度 | 多云调用意味着多一套密钥管理、多一份监控面板。如果 Bedrock 能覆盖 90% 的需求,减少一个云供应商的运维负担本身就有价值。 |
一句话总结:Bedrock 上的 OpenAI 模型没有价格优势,但有预算整合、合规覆盖和运维简化的优势。如果你已经是 AWS 重度用户,这次 GA 是把 OpenAI 模型纳入现有体系的好时机;如果 Azure 和 AWS 对你都是新坑,则按模型能力和区域需求做选择,计费差异不是决定因素。