如何在泰國、馬來西亞、新加坡、印尼及台灣透過 Amazon Bedrock 全球跨區域推理存取 OpenAI GPT-6 模型
Accessing OpenAI GPT models on Amazon Bedrock with global cross-Region inference in Thailand, Malaysia, Singapore, Indonesia, and Taiwan
AWS 説明如何透過 Amazon Bedrock 全球跨區域推理,在泰國、馬來西亞、新加坡、印尼及台灣存取 GPT-6 Sol 和 GPT-6 Luna,並在新加坡存取 GPT-6 Astra。
文章把 API 呼叫、IAM/SCP 權限、配額與監控串成部署流程,並交代跨區域請求的資料保留位置及來源區域追蹤方式。
當需求超出本地容量時,單一區域推理可能會受到限流。泰國、馬來西亞、新加坡、印尼及台灣的團隊,需要在本地容量不足以應付需求時,仍可存取最新的 OpenAI 模型。Amazon Bedrock 透過全部五個 AWS 區域提供 OpenAI GPT-6 Sol 和 GPT-6 Luna 的全球跨區域推理;GPT-6 Astra 則透過亞太地區(新加坡)提供。本文示範如何設定呼叫、設定權限,以及從來源區域監察推理作業。
上述區域均可透過 bedrock-runtime 端點使用 GPT-6 Sol、GPT-6 Luna 和 GPT-6 Astra 的全球跨區域推理。請參閲 Amazon Bedrock 使用者指南中的跨區域推理。如要查看各設定檔的完整來源區域和目的地區域清單,請參閲推理設定檔支援的區域和模型。
本文會介紹全球跨區域推理設定檔,並示範如何在亞太地區(新加坡)使用 Converse API、與 OpenAI 相容的 API 及程式開發用戶端呼叫這些設定檔。接着會説明 AWS Identity and Access Management (IAM) 和服務控制政策 (SCP) 的設定、配額管理及監察。
OpenAI GPT-6 的全球跨區域推理設定檔
GPT-6 系列提供三款模型,全部均可透過全球跨區域推理使用。
- GPT-6 Sol 為一週內處理的複雜工作帶來強大的推理和編碼能力。
- GPT-6 Luna 讓大量執行專注且可重複的工作變得切實可行。
- GPT-6 Astra 可處理複雜推理、編碼及長文件工作。
三款模型均支援文字和圖片輸入、用戶端工具使用,以及提示詞快取。它們在推理力度方面有所不同。GPT-6 Sol 和 GPT-6 Luna 支援 none、low、medium、high、xhigh 和 max。GPT-6 Astra 支援相同級別,但不包括 none。如要了解 GPT-6 Sol 和 GPT-6 Luna,請參閲在 Amazon Bedrock 上使用 GPT-6 Sol 和 GPT-6 Luna,提升日常工作的智能。如要了解 GPT-6 Astra,請參閲在 Amazon Bedrock 上使用 GPT-6 Astra,應對最具挑戰性的工作。
全球跨區域推理會在模型已部署的受支援商用 AWS 區域之間路由請求,讓你廣泛存取 Amazon Bedrock 的容量。只需傳入全球跨區域推理設定檔 ID 代替模型 ID,即可呼叫該設定檔。來源區域是你發出 API 呼叫的區域。Amazon Bedrock 會選擇目的地區域來處理請求。計費、配額追蹤、AWS CloudTrail 和 Amazon CloudWatch 均會保留在來源區域。
下表列出本文涵蓋的全球跨區域推理設定檔 ID 和來源區域。
| 全球跨區域推理設定檔 | 來源區域 | 目的地區域 |
|
global.openai.gpt-6-sol global.openai.gpt-6-luna |
亞太地區(新加坡) ap-southeast-1 亞太地區(雅加達) ap-southeast-3 亞太地區(馬來西亞) ap-southeast-5 亞太地區(泰國) ap-southeast-7 亞太地區(台北) ap-east-2 |
模型已部署的受支援商用 AWS 區域 |
| global.openai.gpt-6-astra | 亞太地區(新加坡) ap-southeast-1 | 模型已部署的受支援商用 AWS 區域 |
隨着 AWS 新增區域和設定檔,推理設定檔的供應情況和區域支援範圍亦會改變,因此開始建置前,請在模型卡上確認兩者:GPT-6 Sol、GPT-6 Luna 和 GPT-6 Astra。如要查看每個 token 的價格,請參閲Amazon Bedrock 定價。
在 Amazon Bedrock 上開始使用 OpenAI 模型
先完成先決條件,然後透過 Converse API、OpenAI 相容 API,或現有的程式碼用戶端,呼叫三個設定檔中的任何一個。
先決條件
- 具備呼叫該設定檔權限的 IAM 身分。安全與權限一節中的 IAM 政策只授予這些範例所需的權限。
- 啟用來源區域。只需啟用你發出呼叫的區域。無需啟用目的地區域,這些區域使用 Amazon Bedrock 管理的容量。新加坡(
ap-southeast-1)是預設已啟用的區域。雅加達(ap-southeast-3)、馬來西亞(ap-southeast-5)、泰國(ap-southeast-7)和台北(ap-east-2)則是必須先啟用的選擇性區域。如需更多資訊,請參閲 在帳戶中啟用或停用 AWS 區域。 - 最新版本的 AWS SDK 或 CLI。OpenAI 相容範例亦需要 OpenAI SDK 和 Amazon Bedrock token 產生器。使用
pip install boto3 openai aws-bedrock-token-generator安裝。
Amazon Bedrock 主控台會在系統定義的推理設定檔下列出全部三個全球跨區域推理設定檔。請參閲圖 1。
圖 1:Amazon Bedrock 主控台中系統定義設定檔內的三個全球 OpenAI GPT-6 推理設定檔
透過 Amazon Bedrock Runtime 呼叫 GPT-6 模型
每個模型在此端點都支援三種存取方式:Amazon Bedrock Converse API、OpenAI Responses API 和 OpenAI Chat Completions API。OpenAI 相容 API 會透過 /openai/v1 路徑呼叫,而非透過 AWS SDK;端點接受 Signature Version 4 (SigV4) 或 Amazon Bedrock API 金鑰。每次呼叫都要將全球跨區域推理設定檔 ID 作為 model 傳入。
Converse API。 此範例從亞太地區(新加坡)呼叫 GPT-6 Sol,並記錄回應。將 BEDROCK_PROFILE_ID 設為 global.openai.gpt-6-luna 或 global.openai.gpt-6-astra 即可切換模型;如要串流傳輸,請呼叫 converse_stream。
import logging
import os
import boto3
# AWS_REGION overrides this default, so set it to your source Region or unset it.
REGION = os.environ.get("AWS_REGION", "ap-southeast-1")
PROFILE_ID = os.environ.get("BEDROCK_PROFILE_ID", "global.openai.gpt-6-sol")
PROMPT = (
"In three bullet points, explain when a workload should use "
"cross-Region inference instead of calling a model in a single Region."
)
logging.basicConfig(format="%(levelname)s %(message)s")
log = logging.getLogger("bedrock-cris")
log.setLevel(logging.INFO)
client = boto3.client("bedrock-runtime", region_name=REGION)
# AccessDeniedException points at the IAM policy. ValidationException usually
# means the model ID is not a global cross-Region inference profile.
response = client.converse(
modelId=PROFILE_ID,
messages=[{"role": "user", "content": [{"text": PROMPT}]}],
inferenceConfig={"maxTokens": 1024},
# GPT-6 Sol and Luna accept none through max. GPT-6 Astra rejects none.
additionalModelRequestFields={"reasoning": {"effort": "low"}},
)
# Any effort above none can prepend a reasoningContent block, so pick the text
# block by key rather than by position.
text = "".join(b["text"] for b in response["output"]["message"]["content"] if "text" in b)
log.info("Called %s from %s", PROFILE_ID, REGION)
log.info("Stop reason: %s", response["stopReason"])
log.info("Response:\n%s", text)OpenAI Chat Completions API。 將 OpenAI SDK 指向區域端點,並傳入相同的設定檔 ID。
import logging
import os
from aws_bedrock_token_generator import provide_token
from openai import OpenAI
REGION = os.environ.get("AWS_REGION", "ap-southeast-1")
PROFILE_ID = os.environ.get("BEDROCK_PROFILE_ID", "global.openai.gpt-6-sol")
PROMPT = "List three uses for a message queue."
logging.basicConfig(format="%(levelname)s %(message)s")
log = logging.getLogger("bedrock-cris")
log.setLevel(logging.INFO)
# provide_token mints a short-term key from your AWS credentials, valid up to 12 hours.
client = OpenAI(
base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
api_key=provide_token(region=REGION),
)
response = client.chat.completions.create(
model=PROFILE_ID,
messages=[{"role": "user", "content": PROMPT}],
max_completion_tokens=256,
)
log.info("Called %s from %s", PROFILE_ID, REGION)
log.info("Response:\n%s", response.choices[0].message.content)遷移現有 OpenAI 用戶端時:
- 每個請求都要設定 model 參數,包括參照先前回應的請求。
- 使用支援的工具類型:
function、mcp、custom、namespace和tool_search。 - 直接在用戶端設定推理設定檔 ID,不要查詢 models 端點。
設定 ChatGPT 桌面應用程式和 Codex CLI
ChatGPT 桌面應用程式和 Codex CLI 共用 ~/.codex/config.toml,因此只需作出一項更改即可同時套用至兩者。Amazon Bedrock 內置的兩個供應商中,只有 amazon-bedrock-runtime 接受推理設定檔。
model = "global.openai.gpt-6-astra"
model_provider = "amazon-bedrock-runtime"
[model_providers.amazon-bedrock-runtime.aws]
region = "ap-southeast-1"使用 SigV4 簽署即代表無需輪替金鑰。若要使用非預設設定檔,請加入 profile = "<your-profile>",並明確設定 region,否則用戶端會退回至 AWS_REGION。如要更改模型,請將 model 換成另一個設定檔 ID。
Codex 顯示這些設定檔的 token 視窗為 272,000 個 token;這是 Codex 內置的數值,並非服務限制。使用 model_context_window 調高此數值。此設定需要 Codex CLI 0.148 或更新版本。
圖 2 顯示應用程式中的結果。
圖 2:在 Amazon Bedrock 上執行 GPT-6 Astra 的 ChatGPT 桌面應用程式
安全與權限
Amazon Bedrock 提供多種推理控制措施,當中有兩項與此處相關。AWS Identity and Access Management (IAM) 政策會控制哪些角色可呼叫哪些設定檔;服務控制政策 (SCP) 則可套用全機構的控制措施,包括區域範圍。本節涵蓋這兩項措施,以及請求資料會存放在哪裏。
全球跨區域推理的 IAM 權限
如要透過全球跨區域推理設定檔呼叫這些模型中的任何一個,IAM 政策需要包含四個陳述式:
- 可存取來源區域中的推理設定檔及專案/預設資源。
- 可存取來源區域中範圍限定為推理設定檔的基礎模型。
- 基礎模型不受區域限制的 Amazon Resource Name (ARN)
arn:aws:bedrock:::foundation-model/openai.gpt-6-sol,並將aws:RequestedRegion設為unspecified,以允許跨區域路由。 bedrock:CallWithBearerToken用於 API 金鑰驗證。
此 IAM 政策授予透過全球跨區域推理從 ap-southeast-1 呼叫 GPT-6 Sol 的權限。請將該值替換為你的 AWS 帳戶 ID,並將 ap-southeast-1 替換為來源區域。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GrantGlobalCrisProfileAndProjectAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": [
"arn:aws:bedrock:ap-southeast-1:<ACCOUNT>:inference-profile/global.openai.gpt-6-sol",
"arn:aws:bedrock:ap-southeast-1:<ACCOUNT>:project/default"
],
"Condition": {
"StringEquals": { "aws:RequestedRegion": "ap-southeast-1" }
}
},
{
"Sid": "GrantGlobalCrisInRegionModelAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": ["arn:aws:bedrock:ap-southeast-1::foundation-model/openai.gpt-6-sol"],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "ap-southeast-1",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-southeast-1:<ACCOUNT>:inference-profile/global.openai.gpt-6-sol"
}
}
},
{
"Sid": "GrantGlobalCrisGlobalModelAccess",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": ["arn:aws:bedrock:::foundation-model/openai.gpt-6-sol"],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "unspecified",
"bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-southeast-1:<ACCOUNT>:inference-profile/global.openai.gpt-6-sol"
}
}
},
{
"Sid": "AllowBearerTokenAuth",
"Effect": "Allow",
"Action": ["bedrock:CallWithBearerToken"],
"Resource": "*"
}
]
}如果你使用串流(converse_stream 或 stream=True),請將 bedrock:InvokeModelWithResponseStream 加入首三個陳述式中的 Action。Converse 會以 bedrock:InvokeModel 進行授權。如果你只使用 SigV4 憑證呼叫 Converse,請移除第四個陳述式。
如要切換模型,請在全文中將 openai.gpt-6-sol 替換為 openai.gpt-6-luna 或 openai.gpt-6-astra。完整參考資料請參閲 全域跨區域推理的 IAM 政策要求。
全域跨區域推理的服務控制政策注意事項
全域跨區域推理請求不會帶有區域名稱。Amazon Bedrock 會將 aws:RequestedRegion 設為 unspecified,因此 SCP 中的區域允許清單會拒絕此呼叫,而錯誤訊息只會指出政策類型,不會指出是哪項政策。這是企業帳戶首次呼叫失敗的常見原因。
不要擴大允許清單,而應限定例外範圍。Amazon Bedrock 會在授權期間填入 bedrock:InferenceProfileArn 條件金鑰,因此 SCP 可以允許這些設定檔,同時保留對其他所有項目的區域控制。以下 SCP 可達到這個目的。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyOutsideApprovedRegionsExceptBedrockInvoke",
"Effect": "Deny",
"NotAction": [
"iam:*", "sts:*", "organizations:*", "account:*",
"route53:*", "cloudfront:*", "waf:*", "wafv2:*", "shield:*",
"support:*", "trustedadvisor:*", "health:*",
"budgets:*", "ce:*", "cur:*", "tax:*", "billing:*",
"bedrock:Invoke*"
],
"Resource": "*",
"Condition": {
"StringNotEquals": { "aws:RequestedRegion": ["ap-southeast-1"] }
}
},
{
"Sid": "DenyBedrockInferenceOutsideApprovedRegionsUnlessCris",
"Effect": "Deny",
"Action": ["bedrock:Invoke*"],
"Resource": "*",
"Condition": {
"StringNotEquals": { "aws:RequestedRegion": ["ap-southeast-1"] },
"ArnNotLike": {
"bedrock:InferenceProfileArn": [
"arn:aws:bedrock:*:*:inference-profile/global.*"
]
}
}
}
]
}第一個陳述式會對除 Amazon Bedrock 推理以外的所有服務強制執行你的區域允許清單。第二個陳述式會拒絕在這些區域以外進行該推理,除非請求透過全域跨區域推理設定檔路由。對於地理區域設定檔,請將其前綴(例如 inference-profile/us.*)加入 ArnNotLike 清單,因為地理區域請求會帶有實際的區域名稱。請將來源區域保留在允許清單中,並將組織使用的全域服務加入 NotAction。
較粗略的做法是將 unspecified 加入現有允許清單;此方法可行,但會讓所有其他服務都享有相同例外。如需可直接使用的政策檔案,請參閲 aws-samples service-control-policy-examples 存放庫。
資料保留與濫用偵測
在自動化離線濫用偵測中,被分類器標記的流量會由 AWS 保留最多 30 天,並以程式方式處理。在跨區域推理下,資料會保留在目的地區域;對於全域設定檔,目的地可以是任何已部署該模型的支援商用 AWS 區域。合資格客戶可透過其 AWS 客戶團隊申請完整的零資料保留。如需更多資訊,請參閲 Amazon Bedrock 濫用偵測及資料保留。
如果你的組織有資料駐留要求,請及早與風險及合規團隊討論。請參閲 AWS Financial Services Compliance Center 中這五個國家的頁面。我們建議你就遵守與業務相關的要求自行尋求意見。
配額管理
bedrock-runtime 上的 GPT-6 配額以每分鐘 token 數(TPM)計算,並按你發出呼叫的來源區域進行追蹤。輸入 token 和快取寫入 token 按 1:1 計算,而每個輸出 token 會消耗 10 個配額 token。例如,一個包含 2,000 個輸入 token 和 1,000 個輸出 token 的請求,會消耗配額中的 12,000 個 token。
Amazon Bedrock 會預先保留全部 max_tokens,因此應按預期的生成量設定配額。一項配額涵蓋 InvokeModel、Converse、Responses 和 Chat Completions。請在來源區域的 Service Quotas 主控台查看並提高配額。正式投入生產前,請及早申請提高配額,並在 AWS/Bedrock 命名空間中,於 EstimatedTPMQuotaUsage 達到配額額度的 70–80% 時設定警示。如需查看目前數值,請參閲Amazon Bedrock 中 token 的計算方式和Amazon Bedrock 端點與配額。
監察與記錄
營運監察仍在來源區域進行。Amazon CloudWatch 指標、AWS CloudTrail 事件、模型呼叫記錄、配額計算和帳單資料,全部仍留在你發出呼叫的區域。你支付的是該區域的費率,而非處理所在區域的費率。
CloudTrail 會記錄每項請求的處理區域。AWS 説明全球跨區域推論設定檔的目的地是其商業區域,但沒有逐一列出。GetInferenceProfile會傳回不限定區域及來源區域的模型 ARN,而非目的地清單。每項請求在來源區域的 CloudTrail 記錄中會以 additionalEventData.inferenceRegion 顯示。此端點上的推論屬於管理事件,預設會記錄,且不會額外收費。CloudTrail Event History 會保留 90 天;如需保留更長時間,則需要設定 trail 或模型呼叫記錄。使用以下命令擷取 CloudTrail 事件。
aws cloudtrail lookup-events \
--region ap-southeast-1 \
--lookup-attributes AttributeKey=EventSource,AttributeValue=bedrock.amazonaws.com \
--start-time <START> \
--end-time <END> \
--max-results 1 \
--query 'Events[0].CloudTrailEvent' --output text | python3 -m json.tool請將時間範圍設在你剛才發出呼叫的時間附近,因為 CloudTrail 事件傳送會延遲幾分鐘。如果最近一項事件是失敗的呼叫,該事件會包含 errorCode,而不會包含 inferenceRegion。提高 --max-results,並選擇不含 errorCode 的事件。
{
"eventName": "Converse",
"eventSource": "bedrock.amazonaws.com",
"awsRegion": "ap-southeast-1",
"managementEvent": true,
"requestParameters": {
"modelId": "global.openai.gpt-6-sol",
"inferenceConfig": { "maxTokens": 1024 }
},
"additionalEventData": {
"inferenceRegion": "us-east-1"
}
}指標和編碼 Agent 用量會留在 CloudWatch。開發人員透過編碼 Agent 使用 GPT-6 時,CloudWatch 的 Coding Agent Insights 會在 GenAI Observability 下提供現成的儀錶板,按用戶、團隊和成本中心細分 token 用量。這些 Agent 原生輸出 OpenTelemetry 指標。Codex 的相關設定請參閲為 OpenAI Codex 設定 OpenTelemetry。
清理
本文新增了一項 IAM 政策,以及可選的 SCP 陳述式和記錄目的地。請解除附加或刪除已附加的 IAM 政策;如有新增 SCP 項目,請將其還原。如有在Amazon Simple Storage Service(Amazon S3)或 Amazon CloudWatch Logs 中建立模型呼叫記錄目的地,請將其刪除,以免產生儲存費用。全球跨區域推論設定檔由系統定義,因此無須刪除。
總結
本文示範如何透過 bedrock-runtime 的全球跨區域推論,從亞太區五個來源區域呼叫 GPT-6 Sol 和 GPT-6 Luna,並從亞太區域(新加坡)呼叫 GPT-6 Astra。將全球跨區域推論設定檔 ID 傳入 model 參數,並設定本文所述的 IAM 政策和 SCP 例外項目。同一端點亦支援與 OpenAI 相容的 API,因此只需更改基礎 URL 和金鑰,即可將現有的 OpenAI 整合切換至此端點。
如要開始使用,請附加本文所述的 IAM 政策,並透過 global.openai.gpt-6-sol 發出第一個請求。請按 10 倍消耗速率設定每分鐘 token 配額,並在 CloudTrail 中確認呼叫記錄包含 additionalEventData.inferenceRegion。
如需更多資訊,請參閲Amazon Bedrock 使用者指南、使用跨區域推論,跨 AWS 區域路由模型推論請求和Amazon Bedrock 定價。
作者簡介
Traci Lim
Traci 是常駐新加坡的 AWS 高級 AI/ML 專家技術客戶經理。他以機器學習工程師為業,與初創公司及大型企業合作,協助他們將 AI/ML 應用投入正式環境並擴大規模,專注於 GenAIOps、Agentic Ops、卓越營運,以及成本和效能最佳化。加入 AWS 前,Traci 曾帶領科技及金融業的工程團隊,在 AWS、Azure、GCP 和 SAP 上擴展分佈式 AI 系統。他熱衷於創造,並一直尋求透過科技帶來實質影響的方法。
Karan Jhaveri
Karan 是常駐新加坡的 AWS 高級技術客戶經理。他與公營機構及企業客戶合作,協助他們將生成式 AI 從實驗階段推進至大規模正式部署。他喜歡親力親為,深入瞭解細節並構建能解決實際營運問題的方案。
Melanie Li
Melanie 博士是常駐澳洲悉尼的 AWS 高級生成式 AI 專家解決方案架構師,專注於與客戶合作,利用最先進的 AI/ML 工具構建方案。她積極參與亞太及日本(APJ)多項生成式 AI 計劃,發揮大型語言模型(LLM)的力量。加入 AWS 前,Li 博士曾在金融及零售業擔任數據科學相關職務。
Zohreh Norouzi
Zohreh 是 Amazon Web Services(AWS)的高級安全解決方案架構師。她協助客戶作出合適的安全選擇,並加快邁向 AWS Cloud 的進程。她積極參與 AI 安全計劃,運用專業知識協助客戶大規模構建安全的 AI 方案。
Saurabh Trikande
Saurabh 是 Amazon Bedrock 和 Amazon SageMaker Inference 的高級產品經理。他熱衷於與客戶及合作夥伴合作,並以推動 AI 普及為目標。他專注於部署複雜 AI 應用程式、多租戶模型推理、成本最佳化,以及讓生成式 AI 模型更容易部署等核心挑戰。閒暇時,Saurabh 喜歡行山、瞭解創新科技、追看 TechCrunch,以及與家人共度時光。
Chris Dickens
Chris 是 OpenAI 的產品團隊成員,專注於 OpenAI API。他的工作包括與 AWS 合作,透過 Amazon Bedrock 讓開發人員廣泛使用 OpenAI 的前沿模型。
來源:AWS Machine Learning Blog · aws.amazon.com

