Amazon Bedrock 新增 GPT-5.6(Sol/Terra/Luna)25+ 区域跨区域推理能力,支持 OpenAI 和 Converse API 调用,可按地理或全局 profile 路由请求以提升吞吐。
本文由 OpenAI 的 Chris Dickens 联合撰写。
Amazon Bedrock 现已在超过 25 个 AWS 区域提供 OpenAI GPT-5.6 模型,并支持跨区域推理(cross-Region inference)。三个 GPT-5.6 变体支持跨区域推理,分别是 Sol、Terra 和 Luna,每个变体在能力和成本之间做了不同取舍。
Amazon Bedrock 中的跨区域推理(CRIS)通过推理配置文件(inference profiles)工作,这些文件定义了一个模型以及 Amazon Bedrock 可以将请求路由到的 AWS 区域。你从源区域调用配置文件,Amazon Bedrock 会利用该区域的计算资源将请求路由到目标区域。CRIS 本质上是一种容量机制。通过允许请求从更广泛的计算资源池中获取资源,而非绑定在单一区域的可用容量上,它提高了吞吐量,并在负载下有助于保持一致的性能。地理推理配置文件在单一地理区域内路由请求,因此在保持数据在该地理区域内处理的同时可以实现扩展。对于 GPT-5.6,此次发布引入了美国地理(US cross-Region inference)和全局 CRIS。全局推理配置文件可根据实时容量跨所有支持的 AWS 商业区域路由请求(模型已部署在这些区域),为你提供广泛的 Amazon Bedrock 容量访问。
在本文中,我们将介绍 Amazon Bedrock 上 GPT-5.6 模型的概述、这些模型的地理和全局跨区域推理如何工作,以及如何通过 Amazon Bedrock 控制台、OpenAI Responses API、OpenAI Chat Completions API 和 Amazon Bedrock Converse API 调用它们。
Amazon Bedrock 上的 GPT-5.6 系列包括通用模型和专用网络安全变体。本文涵盖支持跨区域推理的三个通用变体:Sol、Terra 和 Luna。这三个变体都接受文本和图像输入并返回文本,拥有 100 万 token 的上下文窗口,支持推理模式、服务器端工具调用和提示缓存。你可以通过 OpenAI Responses API、OpenAI Chat Completions API 和 Amazon Bedrock Converse API 调用它们。流式传输通过 Responses 和 Chat Completions API(stream=True)以及 ConverseStream 支持。
Amazon Bedrock 推理配置文件是你传入的逻辑标识符,替代原始模型 ID。
地理推理配置文件(以地理代码为前缀,例如 us.:us.openai.gpt-5.6-terra)将推理处理保持在预定义地理区域的区域内。请求通过源区域进入,只能被路由到该地理区域内的目标区域,因此有数据驻留要求的工作负载可以在区域内扩展的同时保持边界。
全局推理配置文件(以 global. 为前缀,例如 global.openai.gpt-5.6-terra)可根据实时容量将请求路由到模型部署所在的任何支持的商业 AWS 区域。它提供了最广泛的容量池,当工作负载没有地理处理要求时,这是正确的选择。
计费和配额消耗无论请求由哪个后端区域处理都针对你的账户进行跟踪,因此单一支出和吞吐量视图仍然适用。通过全局 CRIS 处理的数据可能会跨越该模型合格集中的区域。如果你的工作负载有将处理限制在特定地理区域的数据驻留要求,请使用该地理区域的地理配置文件(例如 us.openai.gpt-5.6-terra)或直接调用一个区域,而不是全局配置文件。Amazon Bedrock 跨区域推理文档列出了哪些区域参与每个模型的全局和地理配置文件集。
下表列出了你可以调用 GPT-5.6 推理配置文件的源区域,以及可以处理你的请求的目标区域。相同的路由适用于所有三个变体:Sol、Terra 和 Luna。
美国跨区域推理配置文件(us.openai.gpt-5.6-sol / -terra / -luna)
全局跨区域推理配置文件(global.openai.gpt-5.6-sol / -terra / -luna)
美国:US East (N. Virginia) us-east-1、US East (Ohio) us-east-2、US West (Oregon) us-west-2、US West (N. California) us-west-1
加拿大:Canada (Central) ca-central-1
欧洲:Europe (Stockholm) eu-north-1、Europe (Paris) eu-west-3、Europe (Ireland) eu-west-1、Europe (Frankfurt) eu-central-1、Europe (Spain) eu-south-2、Europe (Milan) eu-south-1、Europe (London) eu-west-2、Europe (Zurich) eu-central-2
亚太:Asia Pacific (Melbourne) ap-southeast-4、Asia Pacific (Sydney) ap-southeast-2、Asia Pacific (Tokyo) ap-northeast-1、Asia Pacific (Osaka) ap-northeast-3、Asia Pacific (Seoul) ap-northeast-2、Asia Pacific (Mumbai) ap-south-1、Asia Pacific (Hyderabad) ap-south-2、Asia Pacific (Singapore) ap-southeast-1、Asia Pacific (Jakarta) ap-southeast-3、Asia Pacific (Thailand) ap-southeast-7、Asia Pacific (Malaysia) ap-southeast-5、Asia Pacific (Taipei) ap-east-2
中东:Middle East (UAE) me-central-1、Israel (Tel Aviv) il-central-1
南美洲:South America (São Paulo) sa-east-1
试用 GPT-5.6 最快的方式是 Amazon Bedrock 控制台中的文本 playground,无需编码或 SDK 设置。你可以发送提示、调整推理参数,并在集成 API 之前在变体之间切换以了解每个模型。模型选择器同时列出了地理和全局跨区域推理配置文件,因此你可以在编写代码之前测试任一跨区域推理选项。在上面的截图中,源区域是 US East (N. Virginia)。模型选择器中的 US 条目是地理推理配置文件,Global 条目是全局推理配置文件。
图 1:在 Amazon Bedrock 控制台模型选择器中选择美国或全球 GPT-5.6 推理配置文件
GPT-5.6 在 Amazon Bedrock 上原生支持 OpenAI Responses API 格式。如果你的应用程序已经调用 OpenAI 模型,你可以将现有的 OpenAI SDK 客户端指向 Amazon Bedrock 的 OpenAI 兼容端点。然后将推理配置文件 ID(全局或地理)作为模型参数交换。对于身份验证,Amazon Bedrock 接受标准 AWS 凭证或 Amazon Bedrock API 密钥。API 密钥路径最直接地适配 OpenAI SDK,后者将其作为 bearer 令牌传递。对于生产环境,使用 aws-bedrock-token-generator 包以编程方式生成短期 API 密钥,该包从你现有的 AWS 凭证派生 bearer 令牌(仅建议将长期密钥用于探索)。
from aws_bedrock_token_generator import provide_token
from openai import OpenAI
region = "us-east-1"
# Point the OpenAI SDK at Amazon Bedrock's OpenAI-compatible endpoint for your Region. provide_token() generates a short-term Amazon Bedrock API key from your current AWS credentials (valid up to 12 hours), so no static key needs to be stored.
client = OpenAI(
base_url= f"https://bedrock-runtime.{region}.amazonaws.com/openai/v1",
api_key=provide_token(region=region),
)
# Use the global inference profile ID for GPT-5.6 Terra.
model_id = "global.openai.gpt-5.6-terra"
response = client.responses.create(
model=model_id,
input="Summarize the difference between horizontal and vertical scaling in two sentences.",
max_output_tokens=512,
)
print(response.output_text)
有关支持的完整参数列表,请参阅 Amazon Bedrock 用户指南中的 OpenAI GPT 模型参数页面。同一客户端也适用于 Chat Completions API,如果你的应用程序已经使用这种格式的话。
response = client.chat.completions.create(
# For US Geo CRIS, use "us.openai.gpt-5.6-terra".
# Other variants: gpt-5.6-sol, gpt-5.6-luna
model="global.openai.gpt-5.6-terra",
messages=[
{
"role": "user",
"content": "In one sentence, what is cross-Region inference in Amazon Bedrock?",
}
],
max_completion_tokens=2000,
reasoning_effort="low",
)
print(response.choices[0].message.content)
如果你直接调用 Amazon Bedrock 而不是通过 OpenAI SDK,请使用 Amazon Bedrock Converse API,它提供与你已用于 Bedrock 上其他模型的相同请求结构:
import boto3
client = boto3.client("bedrock-runtime", region_name="us-east-1")
model_id = "global.openai.gpt-5.6-terra"
response = client.converse(
modelId=model_id,
messages=[{"role": "user", "content": [{"text": "List three common uses for a message queue."}]}],
inferenceConfig={"maxTokens": 512},
)
print(response["output"]["message"]["content"][0]["text"])
对于流式响应,调用 converse_stream 并传入相同的参数,然后遍历事件流:
stream_response = client.converse_stream(
modelId=model_id,
messages=[{"role": "user", "content": [{"text": "List three common uses for a message queue."}]}],
inferenceConfig={"maxTokens": 512},
)
for event in stream_response["stream"]:
if "contentBlockDelta" in event:
print(event["contentBlockDelta"]["delta"]["text"], end="")
跨区域推理使用与区域内直接调用相同的 Amazon Bedrock 安全模型。请求通过 AWS Identity and Access Management(IAM)凭证进行认证,IAM 策略控制角色可以调用哪些推理配置文件。Amazon Bedrock 在芯片层面强制执行零操作员访问(ZOA)安全模型,因此没有任何 AWS 运维人员可以访问你的提示词或补全内容。每次模型调用都在你的 IAM 策略下运行,可以通过虚拟私有云(VPC)端点从你的 VPC 私密访问,并记录在 AWS CloudTrail 中。数据边界策略有助于防止数据和内容跨账户和网络边界泄露。
对于某些模型(包括 GPT-5.6),被 Amazon Bedrock 自动滥用检测分类器标记的内容最多保留 30 天用于离线滥用检测。要查看哪些模型适用此规则及其工作原理,请参阅 Amazon Bedrock 用户指南中的滥用检测。要了解更多关于 Bedrock 数据保留配置的信息,请参阅 Amazon Bedrock 数据保留文档。权威的区域列表(在每个配置文件的路由集中),请参阅 Amazon Bedrock 跨区域推理支持页面。
跨区域推理请求会出现在你源区域的 AWS CloudTrail 中,additionalEventData.inferenceRegion 字段记录了处理每个请求的区域。如果你启用了模型调用日志记录,请求和响应负载将传送到同一账户和区域的 Amazon Simple Storage Service(Amazon S3)或 Amazon CloudWatch Logs。
要允许角色通过推理配置文件调用 GPT-5.6,需授予其对推理配置文件以及该配置文件可路由到的每个区域中基础模型的访问权限。你可以使用这个托管策略 AmazonBedrockLimitedAccess 或创建自己的策略。
对于地理推理配置文件,策略包含三条语句。第一条授予对地理推理配置文件和你源区域中默认项目的访问权限。第二条授予对你源区域以及该地理区域内每个目标区域中基础模型的访问权限,并带有条件限制,要求这些访问必须通过该配置文件发起。第三条授予 OpenAI 兼容 API 使用的 bearer-token 认证权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GrantGeoCrisProfileAndProjectAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": [
"arn:aws:bedrock:<SOURCE REGION>:<ACCOUNT>:inference-profile/us.openai.gpt-5.6-terra",
"arn:aws:bedrock:<SOURCE REGION>:<ACCOUNT>:project/default"
]
},
{
"Sid": "GrantGeoCrisDestinationModelAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/openai.gpt-5.6-terra",
"arn:aws:bedrock:us-east-2::foundation-model/openai.gpt-5.6-terra",
"arn:aws:bedrock:us-west-2::foundation-model/openai.gpt-5.6-terra"
],
"Condition": {
"StringLike": {
"bedrock:InferenceProfileArn": "arn:aws:bedrock:<SOURCE REGION>:<ACCOUNT>:inference-profile/us.openai.gpt-5.6-terra"
}
}
},
{
"Sid": "AllowBearerTokenAuth",
"Effect": "Allow",
"Action": ["bedrock:CallWithBearerToken"],
"Resource": "*"
}
]
}
全局推理配置文件使用四部分策略。第一条授予对全局推理配置文件和你源区域中默认项目的访问权限。第二条授予对你源区域中基础模型的访问权限。第三条授予通过区域无关的全局 ARN 对基础模型的访问权限,这正是启用跨区域路由的关键。第四条授予 OpenAI 兼容 API 使用的 bearer-token 认证权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GrantGlobalCrisProfileAndProjectAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": [
"arn:aws:bedrock:<REQUESTING REGION>:<ACCOUNT>:inference-profile/global.openai.gpt-5.6-terra",
"arn:aws:bedrock:<REQUESTING REGION>:<ACCOUNT>:project/default"
],
"Condition": {
"StringEquals": { "aws:RequestedRegion": "<REQUESTING REGION>" }
}
},
{
"Sid": "GrantGlobalCrisInRegionModelAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": ["arn:aws:bedrock:<REQUESTING REGION>::foundation-model/openai.gpt-5.6-terra"],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "<REQUESTING REGION>",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:<REQUESTING REGION>:<ACCOUNT>:inference-profile/global.openai.gpt-5.6-terra"
}
}
},
{
"Sid": "GrantGlobalCrisGlobalModelAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": ["arn:aws:bedrock:::foundation-model/openai.gpt-5.6-terra"],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "unspecified",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:<REQUESTING REGION>:<ACCOUNT>:inference-profile/global.openai.gpt-5.6-terra"
}
}
},
{
"Sid": "AllowBearerTokenAuth",
"Effect": "Allow",
"Action": ["bedrock:CallWithBearerToken"],
"Resource": "*"
}
]
}
这些策略在 project/default 资源上授予 bedrock:CallWithBearerToken 和 bedrock:InvokeModel 权限,OpenAI Responses 和 Chat Completions API 使用这些权限通过 Amazon Bedrock API 密钥进行认证并运行推理。如果你使用流式 Converse API(ConverseStream),请在推理配置文件和基础模型的语句中添加 bedrock:InvokeModelWithResponseStream。
这些语句协同工作,因此删除任一条语句都会拒绝该配置文件对该角色的跨区域访问,这也提供了一种简洁的方式可以针对特定角色关闭任一能力。或者,你可以附加一个明确拒绝 global. 或 us. 推理配置文件显式拒绝语句。
如果你的组织使用区域限制性服务控制策略(SCP),全局 CRIS 请求会将 aws:RequestedRegion 设置为 unspecified(未指定),而不是特定的区域名称。地理 CRIS 请求会根据配置文件中每个目标区域进行评估。推荐的方法是使用 bedrock:InferenceProfileArn 条件免除跨区域推理,而不是扩大你的区域允许列表。Amazon Bedrock 在授权基础模型时设置该条件键,因此你可以允许 CRIS 路由,同时对其他所有服务保持严格的允许列表。你的源区域仍需在允许列表中。如果你更倾向于不使用该条件,也可以将目标区域和 unspecified 添加到允许列表中,但这会向每个服务开放这些区域,而不仅是 Amazon Bedrock。现成的 SCP 和分步指南,请参阅 Bedrock CRIS 区域控制 SCP 示例。
以下 SCP 拒绝在你批准区域(示例中显示悉尼和弗吉尼亚北部)之外使用 Amazon Bedrock 推理,并免除 GPT-5.6 使用的 us. 和 global. 推理配置文件。第一条语句保持对其他每个服务强制执行区域允许列表,因此请在你组织的 NotAction 列表中包含你使用的全局服务。
账户和地区必须为两种 profile 类型都启用模型访问权限。有关完整清单,请参阅 Inference profiles 的前提条件。
使用提示词缓存
三个 GPT-5.6 变体都支持在 bedrock-runtime 端点上进行提示词缓存。当你的请求共享一个长的提示词前缀(例如系统提示词或一组少样本示例)时,Amazon Bedrock 会缓存该前缀,后续请求复用缓存的前缀,而无需重新处理。这降低了缓存部分输入成本和延迟。
GPT-5.6 在 Amazon Bedrock 上支持两种缓存模式。隐式缓存是默认模式:服务在最靠近用户或工具消息的位置放置一个缓存断点,适用于通过追加消息而不断增长的对话。如果你的请求共享一个稳定前缀,后跟每次请求都会变化的内容,则可以用显式缓存断点标记稳定内容的结束位置。两种模式都通过可选的 prompt_cache_key 参数传递,以便具有相同前缀的请求被路由到同一缓存。两种模式都支持地理推理 profile 和全局推理 profile。每个缓存断点至少需要 1,024 个 token 的提示词前缀。有关更多信息,请参阅 Faster model inference 的提示词缓存。
提示词缓存也会影响配额使用。缓存读取的 token 不计入 TPM 配额,因此复用缓存前缀的请求消耗的配额更少。下一节将描述配额的计算方式。以下示例使用显式提示词缓存,客户端和 model_id 来自 Getting started 部分:
# support_policy_manual 是一个在请求之间共享的长且稳定的前缀。
# 断点标记稳定内容的结束位置;之后的用户问题每次请求都会变化,
# 但不会使缓存的前缀失效。
completion = client.chat.completions.create(
model=model_id,
messages=[
{
"role": "system",
"content": [
{
"type": "text",
"text": support_policy_manual,
"prompt_cache_breakpoint": {"mode": "explicit"},
}
],
},
{"role": "user", "content": "A customer wants a refund for a damaged laptop. What must I verify first?"},
],
max_completion_tokens=300,
prompt_cache_key="support-policy-v1",
)
要确认缓存正在生效,请检查每个响应的 usage 对象。
details = completion.usage.prompt_tokens_details
print("Cached tokens:", details.cached_tokens)
print("Written tokens:", details.cache_write_tokens)
GPT-5.6 的按需配额以每分钟 token 数(TPM)管理,并且附加在你调用的推理 profile 上:同一模型的地理 profile 和全局 profile 拥有独立的配额分配,因此在它们之间切换会改变你所使用的配额池。要查看当前的配额分配或申请增加配额,请从应用程序调用 Amazon Bedrock 的所在地区在 AWS Service Quotas 控制台中搜索 GPT-5.6 模型推理配额。
在提交配额增加请求时,需要考虑消耗速率(burndown rate):输入和输出 token 转换为节流系统的 token 配额使用量的速率。输入 token 以 1:1 的比例计入配额,而输出 token 可能以更高的倍数消耗配额。对于 GPT-5.6 模型,输出 token 的消耗速率为 10 倍,意味着一个输出 token 消耗你 TPM 配额的 10 个 token,因此输出密集型工作负载消耗配额的速度比原始 token 计数显示的要快得多。每请求的计算公式为:
输入 token 数量 + 缓存写入输入 token +(输出 token 数量 × 消耗速率)
例如,一个包含 2,000 个输入 token 和 1,000 个输出 token 的请求会消耗 12,000 个配额 token。缓存读取的 token 不参与此计算,这就是提示词缓存(上一节)对配额管理和成本如此有效的原因。有关当前各模型的消耗速率,请参阅 Amazon Bedrock quotas 页面。以下三种做法有助于避免意外:
在部署前申请增加配额。如果你预期使用量较高,请提前通过 Service Quotas 控制台提交增加请求,而不是在生产环境中遇到节流后再反应。
监控利用率。Amazon CloudWatch 按推理 profile 实时发布配额利用率指标,因此你可以在使用量接近阈值时设置警报,并跟踪历史模式来规划未来的增加。
在将工作负载投入生产之前,使用真实流量(包括峰值模式和的生产规模提示词)进行负载测试,并针对你实际使用的 profile 类型进行验证,因为地理配额和全局配额是独立的。
监控和日志
由于 GPT-5.6 请求通过 Bedrock Runtime API 运行,因此通过地理或全局推理 profile 发出的请求与按需请求一样出现在 Amazon Bedrock 模型调用日志中,推理 profile ARN 会与请求和响应负载一起记录(取决于你的日志配置)。你可以将调用日志传送到 Amazon S3 或 Amazon CloudWatch Logs。无论使用哪种 profile 类型,调用日志和指标都记录在你的源地区,因此即使请求在其他地方处理,你的可观测性也集中在一处。
Amazon CloudWatch 指标涵盖调用计数、token 计数、延迟、节流和错误,这些指标按推理 profile 发布。因为地理 profile 和全局 profile 是不同的资源,所以它们的指标是分开报告的。每请求延迟会因请求最终到达的目标地区而有所不同,因此如果你的仪表盘按地区划分指标,你应该会看到这种差异——这是预期的行为,反映了跨地区请求的额外网络开销。