跳到正文
AWS Machine Learning Blog· Roopesh Ramklass·· 4 天前精选AI 评分77

AWS Bedrock 支持加拿大区域通过跨区域推理访问 OpenAI GPT 模型

Access OpenAI GPT models on Amazon Bedrock from Canada with cross-Region inference

AI 导读

AWS 通过 Amazon Bedrock 跨区域推理,让加拿大(中部)和加拿大西部(卡尔加里)区域能够访问 OpenAI GPT-5.6、GPT-6 和 GPT-6.1 的指定模型。

推荐理由

文章梳理了加拿大两个 AWS 区域可用的模型、推理配置与调用方式,并说明区域路由、配额和数据驻留的关键限制。

正文 · AI 翻译

在 Amazon Bedrock 上构建生成式 AI 应用的加拿大组织,通常需要从加拿大 AWS 区域访问最新的基础模型(FM),例如 OpenAI GPT-6.1、OpenAI GPT-6 和 GPT-5.6。借助 Amazon Bedrock 跨区域推理(CRIS),现在可以从加拿大访问这些模型。OpenAI GPT-5.6 模型(Sol、Terra 和 Luna)、GPT-6(Astra、Sol 和 Luna)以及 GPT-6.1 Sol 可从加拿大(中部)和加拿大西部(卡尔加里)区域使用。推理在北美进行处理,本文稍后将介绍数据驻留控制。

跨区域推理是一种容量机制。您的应用会调用源区域中的 Amazon Bedrock Runtime 端点。随后,Amazon Bedrock 会将请求路由到受支持的目标区域进行处理。通过这种方式,您可以使用更大的容量池,从而帮助应用在需求激增期间保持吞吐量。您无需在应用中管理目标区域路由。

本文将介绍可从加拿大使用的 GPT-5.6、GPT-6 和 GPT-6.1 模型,以及为这些模型提供服务的跨区域推理配置文件。接着,我们将演示如何设置权限,并使用 OpenAI Responses API、Chat Completions API 和 Amazon Bedrock Converse API 调用模型。对于 Responses API,我们还会提供流式传输和工具使用示例。最后,我们将介绍如何申请提高配额、查看源区域中可用的可观测性信号,以及使用完毕后如何进行清理。

可从加拿大使用的模型

借助 Amazon Bedrock,您可以通过跨区域推理在加拿大访问三个系列的 OpenAI 模型。下表概述了各个模型及其定位。

模型 定位
GPT-6.1 Sol 适用于性能和成本都很重要的任务,提供强大的推理和编码能力
GPT-6 Astra 适用于复杂的端到端推理和智能体任务
GPT-6 Sol 适用于重复性任务,提供强大的推理和编码能力,且成本效益适合常规使用
GPT-6 Luna 适用于高吞吐量重复任务的快速、低成本推理,可按请求调整推理强度
GPT-5.6 Sol 适用于高推理强度、编码和智能体工作负载
GPT-5.6 Terra 为日常生产环境提供均衡的性能和成本
GPT-5.6 Luna 适用于高吞吐量、对延迟敏感的应用,快速且经济实惠

这些模型接受文本和图像输入,返回文本,并支持 1-million-token 上下文窗口、推理模式和工具调用。GPT-6.1 Sol 支持相同的上下文窗口和工具调用,其额外的输入与输出模态记录在模型卡中。GPT-5.6、GPT-6 和 GPT-6.1 还支持 Amazon Bedrock 上的提示词缓存(请参阅“提示词缓存”部分)。这些模型可通过 OpenAI Responses API、OpenAI Chat Completions API 和 Amazon Bedrock Converse API 在 bedrock-runtime 端点上使用。

有关定价,请参阅 Amazon Bedrock 定价。有关各模型的区域可用性,请参阅 Amazon Bedrock 用户指南中的模型卡。

来自加拿大的跨区域推理配置文件

Amazon Bedrock 推理配置文件是逻辑标识符,您可以传入该标识符来代替原始模型 ID。每个配置文件都定义了一个模型,以及 Amazon Bedrock 可以将请求路由到的区域集合。加拿大提供两种类型的配置文件:

  • 美国地理区域(前缀为 us.)会将请求路由到您的加拿大源区域和美国区域。如果您的工作负载要求推理处理始终在北美(加拿大和美国)境内进行,请选择此配置文件。
  • 全球(前缀为 global.)会将请求路由到已部署该模型的受支持 AWS 商业区域。这样可在请求发出时利用更广泛的容量池。

端点可用性因模型和源区域而异,如下表所示。

模型 美国地理区域配置文件 全球配置文件
GPT-6.1 Sol ca-central-1, ca-west-1 ca-central-1, ca-west-1
GPT-6 Astra / Sol / Luna ca-central-1, ca-west-1 ca-central-1, ca-west-1
GPT-5.6 Sol / Terra / Luna ca-central-1, ca-west-1 ca-central-1

配置文件包含的区域和模型可用性可能会发生变化。GPT-5.6 模型的全球配置文件仅可从 ca-central-1 使用。从 ca-west-1 使用 GPT-5.6 时,请使用美国地理区域配置文件。部署前,请使用 AWS 命令行界面(AWS CLI)或在控制台中(请参阅下一节)确认源区域的有效配置文件,或参阅跨区域推理支持文档。

开始使用

以下各节将介绍从加拿大源区域调用这些模型所需的设置和代码。

先决条件

开始之前,请确认您具备以下条件:

  • 已启用加拿大(中部)ca-central-1或加拿大西部(卡尔加里)ca-west-1区域作为源区域的 AWS 账户。
  • 具有调用推理配置文件权限的 AWS Identity and Access Management (IAM) 角色或用户(请参阅设置权限)。
  • 如果您的组织强制使用 SCP,则需设置允许在源区域使用推理配置文件的服务控制策略(SCP)(请参阅 SCP 注意事项)。
  • 已安装 openai、boto3 和 aws-bedrock-token-generator 包的 Python 3.9 或更高版本。

设置权限

如需快速试用,请附加 AWS 托管策略 AmazonBedrockLimitedAccess。对于访问控制更严格的已部署工作负载,请使用遵循最小权限原则的自定义策略。以下示例授予从 ca-central-1 访问 GPT-6 Astra 全球配置文件的权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["bedrock:InvokeModel*"],
      "Resource": [
        "arn:aws:bedrock:ca-central-1::inference-profile/global.openai.gpt-6-astra"
      ]
    },
    {
      "Effect": "Allow",
      "Action": ["bedrock:InvokeModel*"],
      "Resource": ["arn:aws:bedrock:*::foundation-model/openai.gpt-6-astra"],
      "Condition": {
        "StringLike": {
          "bedrock:InferenceProfileArn": "arn:aws:bedrock:ca-central-1::inference-profile/global.openai.gpt-6-astra"
        }
      }
    }
  ]
}

如果您通过 API 密钥方式(OpenAI SDK 的 bearer token)进行身份验证,还需授予 bedrock:CallWithBearerToken。对于 Responses API,请在 arn:aws:bedrock:ca-central-1:*:project/default 上添加 bedrock:InvokeModel。

SCP 注意事项

如果您的组织通过 SCP 限制区域,请使用 bedrock:InferenceProfileArn 条件键允许 CRIS 流量,同时阻止直接调用未经批准的区域。以下 SCP 会拒绝在您批准的源区域之外进行 Amazon Bedrock 推理,但使用 CRIS 推理配置文件的请求除外:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyBedrockOutsideCanadaUnlessCris",
      "Effect": "Deny",
      "Action": ["bedrock:InvokeModel*"],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": ["ca-central-1", "ca-west-1"]
        },
        "ArnNotLike": {
          "bedrock:InferenceProfileArn": [
            "arn:aws:bedrock:*:*:inference-profile/us.openai.*",
            "arn:aws:bedrock:*:*:inference-profile/global.openai.*"
          ]
        }
      }
    }
  ]
}

使用此条件后,即使 SCP 以其他方式拒绝配置文件的目标区域,Amazon Bedrock 仍可路由到这些区域。所选配置文件中的每个目标区域都必须获得允许,请求才能成功。有关更多详情,请参阅在多账户环境中设置跨区域推理。

验证有效的推理配置文件

调用模型之前,您可以使用 AWS CLI 验证源区域中哪些配置文件处于有效状态。以下命令列出从 ca-central-1 可用的有效 OpenAI 配置文件。要在卡尔加里运行相同的检查,请将 ca-central-1 替换为 ca-west-1。

aws bedrock list-inference-profiles \
    --region ca-central-1 \
    --type-equals SYSTEM_DEFINED \
    --query "inferenceProfileSummaries[?contains(inferenceProfileId, 'openai')].[inferenceProfileId,status]" \
    --output table

Amazon Bedrock 控制台也提供相同的视图。打开控制台,将区域设为加拿大(中部)或加拿大西部(卡尔加里),在推理下选择跨区域推理,然后查看可用的配置文件。

以下屏幕截图显示了 Amazon Bedrock 控制台中为加拿大(中部)区域列出的活动 OpenAI 推理配置文件。

Amazon Bedrock console listing active OpenAI cross-Region inference profiles for the Canada (Central) Region

图 1:Amazon Bedrock 控制台中的活动 OpenAI 跨区域推理配置文件(加拿大(中部))

通过 Amazon Bedrock Runtime 调用模型

GPT-5.6、GPT-6 和 GPT-6.1 在 bedrock-runtime 端点上支持三种访问方式:OpenAI Responses API、OpenAI Chat Completions API 和 Amazon Bedrock Converse API。通过该端点的 /openai/v1 路径调用 OpenAI 兼容 API。该端点接受 AWS Signature Version 4 (SigV4) 或 Amazon Bedrock API 密钥。

以下示例使用 适用于 Python 的 Amazon Bedrock 令牌生成器,根据你当前的 AWS 凭证创建短期 Amazon Bedrock API 密钥,因此应用程序无需存储静态密钥。

OpenAI Responses API

对于已使用 OpenAI SDK 和 Responses API 的应用程序,请将客户端指向区域性的 Amazon Bedrock Runtime 端点,并将推理配置文件 ID 作为模型传入。

from aws_bedrock_token_generator import provide_token
from openai import OpenAI

region = "ca-central-1"  # Use "ca-west-1" for Calgary
client = OpenAI(
    base_url=f"https://bedrock-runtime.{region}.amazonaws.com/openai/v1",
    api_key=provide_token(region=region),
)

response = client.responses.create(
    model="global.openai.gpt-6-astra",
    input="What are the key considerations for AI governance in Canadian financial services?",
    max_output_tokens=1024,
)
print(response.output_text)

如需流式输出,请设置 stream=True 并遍历响应事件,在文本到达时将其打印出来:

stream = client.responses.create(
    model="global.openai.gpt-6-luna",
    input="List five generative AI use cases for Canadian healthcare.",
    max_output_tokens=512,
    stream=True,
)
for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)

OpenAI Chat Completions API

OpenAI Chat Completions 格式也可通过同一端点使用。

response = client.chat.completions.create(
    model="global.openai.gpt-5.6-terra",
    messages=[{"role": "user", "content": "Summarize recent AI regulatory trends in Canada."}],
    max_completion_tokens=1024,
    reasoning_effort="low",
)
print(response.choices[0].message.content)

有关支持参数的完整列表(包括推理力度级别),请参阅 Amazon Bedrock 用户指南中的模型卡。

Amazon Bedrock Converse API

当应用程序通过 AWS SDK 调用 Amazon Bedrock 时,请使用 Converse API。Boto3 会通过标准 AWS 凭证链解析凭证。

import boto3

bedrock = boto3.client("bedrock-runtime", region_name="ca-central-1")
response = bedrock.converse(
    modelId="us.openai.gpt-5.6-terra",
    messages=[{"role": "user", "content": [{"text": "Summarize recent AI regulatory trends in Canada."}]}],
    inferenceConfig={"maxTokens": 1024},
)
# GPT-5.6 and GPT-6 may return a reasoningContent block alongside the text.
# Select the block that contains the text output.
text_output = next(block["text"] for block in response["output"]["message"]["content"] if "text" in block)
print(text_output)

只需更改推理配置文件 ID,同一调用即可用于 GPT-6 Sol、GPT-6 Luna 和 GPT-6.1 Sol。以下示例为 GPT-6 Sol 使用美国地理区域配置文件,为 GPT-6 Luna 使用全球配置文件。两者均已从 ca-central-1 验证。

# GPT-6 Sol, GPT-6 Luna, and GPT-6.1 Sol are called the same way. Swap the inference profile ID, and choose a us. (US geographic) or global. profile to match your data boundary.
# For example, GPT-6.1 Sol via the US geographic profile: modelId="us.openai.gpt-6.1-sol"
# GPT-6 Sol via the US geographic profile: strong reasoning and coding for complex work.
response = bedrock.converse(
    modelId="us.openai.gpt-6-sol",
    messages=[{"role": "user", "content": [{"text": "Summarize recent AI regulatory trends in Canada."}]}],
    inferenceConfig={"maxTokens": 512},
)

# GPT-6 Luna via the global profile: fast, low-cost inference for high-volume tasks such as classification.
response = bedrock.converse(
    modelId="global.openai.gpt-6-luna",
    messages=[{"role": "user", "content": [{"text": "Classify this ticket as BILLING, TECHNICAL, or OTHER: ..."}]}],
    inferenceConfig={"maxTokens": 256},
)

工具使用

这些模型支持客户端工具使用(函数调用)。在 tools 参数中定义工具,模型会返回结构化的工具调用请求,供应用程序执行。

response = client.responses.create(
    model="global.openai.gpt-6-astra",
    input="What's the current exchange rate from CAD to USD?",
    tools=[{
        "type": "function",
        "name": "get_exchange_rate",
        "parameters": {
            "type": "object",
            "properties": {
                "from_currency": {"type": "string"},
                "to_currency": {"type": "string"}
            }
        }
    }],
)

# The model returns a tool-call request rather than text.
for item in response.output:
    if item.type == "function_call":
        print(f"Tool: {item.name}, Args: {item.arguments}")

提示缓存

GPT-5.6、GPT-6 和 GPT-6.1 支持在 Amazon Bedrock 上进行提示缓存,以降低重复提示前缀的成本和延迟。隐式缓存无需更改代码:Amazon Bedrock 会自动缓存符合条件且长度达到 1,024 个令牌或以上的前缀。后续请求中读取的缓存令牌按折扣费率计费,且不计入每分钟令牌数配额。缓存令牌会显示在响应使用情况对象和 Amazon CloudWatch 指标中,方便你跟踪使用情况。有关缓存写入定价、最小前缀大小以及对显式缓存断点的支持,请参阅提示缓存文档和各个模型卡。

配额管理

bedrock-runtime 端点上的跨区域推理配额按每个模型的每分钟令牌数 (TPM) 计算。每项配额将输入和输出令牌合并计算,受同一上限约束。美国地理区域配置文件和全球推理配置文件拥有独立的配额分配,因此在两者之间切换会改变所使用的配额池。

令牌消耗量由输入令牌、缓存写入输入令牌和输出令牌组成。输出令牌会按模型的消耗倍率折算,因此,输出量较大的工作负载消耗配额的速度会快于原始令牌数所显示的情况。在投入生产之前,请尽早申请提高配额,并监控配额使用率。使用具有代表性的提示、输出长度、流式处理行为、并发量和峰值流量进行测试。

要申请提高配额,请按以下步骤操作:

  1. 在 ca-central-1 或 ca-west-1 中打开 Service Quotas 控制台。
  2. 选择 Amazon Bedrock,然后为所需模型选择名为“每分钟跨区域 InvokeModel 令牌数”的配额。
  3. 选择 在账户级别请求增加,输入目标值,然后提交请求。

有关如何跟踪令牌用量和费用的详细信息,请参阅 在 Amazon Bedrock 中跟踪用量和费用。

可观测性

由于这些模型通过 Amazon Bedrock Runtime API 运行,通过推理配置文件发出的请求会以与按需请求相同的方式显示在可观测性工具中。调用日志和 Amazon CloudWatch 指标会记录在源区域,无论请求是在何处处理。可观测性数据始终集中在同一位置。

  • AWS CloudTrail logs every request, recording which destination Region served it in the additionalEventData.inferenceRegion field. For example:
    "additionalEventData": {
      "inferenceProfileArn": "arn:aws:bedrock:ca-central-1:111122223333:inference-profile/global.openai.gpt-6-astra",
      "inferenceRegion": "us-west-2"
    }
  • Amazon CloudWatch 指标按推理配置文件发布,涵盖调用次数、令牌数、延迟、限流和错误。
  • 模型调用日志记录会将完整的请求和响应负载传送到 Amazon Simple Storage Service (Amazon S3) 或 Amazon CloudWatch Logs。要在 Amazon Bedrock 控制台中启用此功能,请选择 Settings,然后选择 Model invocation logging。你也可以调用 PutModelInvocationLoggingConfiguration API。默认情况下,此功能处于关闭状态。
  • AWS Data Exports 按模型和配置文件细分支出。

Amazon CloudWatch 编码代理洞察

如果你使用这些模型为 OpenAI Codex 等 AI 编码助手提供支持,Amazon CloudWatch 编码代理洞察会提供专用控制面板。它会按部门、团队和环境等维度呈现令牌用量、API 请求数、活跃用户和成本归因。要启用此功能,请配置编码代理,将遥测数据导出到 Amazon CloudWatch。有关设置步骤,请参阅 为 OpenAI Codex 设置 OpenTelemetry。

清理

为避免测试后继续产生费用,请移除创建的资源:

  1. 关闭模型调用日志记录。在 Amazon Bedrock 控制台中,选择 Settings,然后选择 Model invocation logging;或者调用 DeleteModelInvocationLoggingConfiguration。这样会停止向 Amazon S3 和 Amazon CloudWatch Logs 传送日志。
  2. 删除或分离为测试创建的 IAM 策略以及任何 Amazon Bedrock API 密钥。

推理配置文件由系统定义,不使用时不会产生费用。

安全与合规

跨区域推理旨在保护传输中和静态存储的数据。请求通过 AWS 私有骨干网传输,并使用 TLS 1.2+ 加密,而非通过公共互联网传输。对于加拿大客户,静态数据默认保留在源区域。这包括调用日志、知识库和配置。只有瞬时推理计算会在目标区域进行,并且默认情况下,模型提供商无法访问你的提示或补全内容。

OpenAI 模型有一项需要特别注意的事项。被自动滥用分类器标记的内容可能会在目标区域保留最多 30 天以供审核。如果你希望将处理范围限制在北美(加拿大和美国),可以选择美国地理配置文件。我们建议与你的合规团队一起查看 Amazon Bedrock 滥用检测。

有关加拿大数据驻留模式的更详细说明,请参阅 跨区域推理与加拿大数据驻留:技术架构指南。

结论

在这篇文章中,我们介绍了如何从加拿大访问 OpenAI GPT-5.6(Sol、Terra 和 Luna)、GPT-6(Astra、Sol 和 Luna)以及 GPT-6.1 Sol。这些模型可通过 Amazon Bedrock 上的跨区域推理,在加拿大(中部)和加拿大西部(卡尔加里)区域使用。我们介绍了可用的推理配置文件、如何设置权限和示例 SCP,以及如何通过 Responses、Chat Completions 和 Converse API 调用模型。对于 Responses API,我们提供了流式传输和工具使用示例。我们还介绍了如何申请提高配额、查看使用情况,以及清理测试资源。

要开始使用,请先查看 Amazon Bedrock 用户指南中的 OpenAI 模型卡,然后打开 Amazon Bedrock 控制台,通过推理配置文件发送测试提示。有关定价信息,请参阅 Amazon Bedrock 定价页面。

如有疑问或反馈,请在这篇文章下留言。


作者简介

Roopesh Ramklass

Roopesh Ramklass

Roopesh 是 AWS 的 AI/ML 专家首席解决方案架构师,常驻加拿大温哥华,帮助客户设计并扩展生成式 AI 解决方案。他在 AI/ML 领域拥有深厚的专业知识,与各类组织合作,将宏大的 AI 构想转化为可靠且影响深远的解决方案。

Dan MacKay

Dan MacKay

Dan 是 AWS 加拿大金融服务合规专家。他就云和 AI 相关治理、风险与合规方面的推荐实践和实用解决方案为客户提供建议。Dan 专注于帮助 AWS 客户应对适用于在加拿大使用云和 AI 技术的金融服务和隐私法规,重点关注数字主权、第三方风险管理和运营韧性。

Prasoon Gupta

Prasoon Gupta

Prasoon 是 Amazon Web Services(AWS)加拿大的解决方案架构师。他乐于帮助公共部门客户实现现代化,并充分发挥云的价值。工作之余,他喜欢在 AWS 上构建全栈 AI 工具,涉足无服务器架构、智能体 AI 和开发者平台。

Saurabh Trikande

Saurabh Trikande

Saurabh 是 Amazon Bedrock 和 Amazon SageMaker Inference 的高级产品经理。他热衷于与客户和合作伙伴合作,并以普及 AI 为目标。他专注于复杂 AI 应用的部署、多租户模型推理、成本优化,以及让生成式 AI 模型更易于部署等核心挑战。闲暇时,Saurabh 喜欢徒步、了解创新技术、关注 TechCrunch,以及与家人共度时光。

Melanie Li

Melanie Li

Melanie 博士是 AWS 的高级生成式 AI 专家解决方案架构师,常驻澳大利亚悉尼,主要与客户合作,利用最先进的 AI/ML 工具构建解决方案。她积极参与了亚太及日本(APJ)的多个生成式 AI 项目,充分发挥大型语言模型(LLM)的能力。加入 AWS 之前,Li 博士曾在金融和零售行业担任数据科学相关职位。

Zohreh Norouzi

Zohreh Norouzi

Zohreh 是 Amazon Web Services(AWS)的高级安全解决方案架构师。她帮助客户做出明智的安全决策,并加快迈向 AWS 云的进程。她积极参与 AI 安全项目,运用专业知识帮助客户大规模构建安全的 AI 解决方案。

来源:AWS Machine Learning Blog · aws.amazon.com