Amazon Bedrock 在首尔与新加坡开放 Claude 5 区域内推理

2026-09-30 13 预计阅读时间: 1 分钟
来源: aws.amazon.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

Amazon Bedrock 现在支持在首尔区域使用 Anthropic Claude Opus 5 和 Claude Sonnet 5,在新加坡区域使用 Claude Sonnet 5。关键变化不只是模型可用性,而是推理请求可以完全在调用的 AWS 区域内处理,为韩国和新加坡存在本地数据处理要求的应用提供了新的部署选择。

模型与区域怎么选

当前公布的区域支持关系是:

AWS 区域 区域代码 可用模型
首尔 ap-northeast-2 Claude Opus 5、Claude Sonnet 5
新加坡 ap-southeast-1 Claude Sonnet 5

如果工作负载必须在韩国境内完成推理处理,可以把 Bedrock Runtime 客户端固定到首尔区域;如果数据处理边界在新加坡,则应调用新加坡端点。不要让 SDK 使用开发者电脑上的默认区域,否则请求可能被发送到与预期不同的区域。

选型时还应考虑任务特点。可以把 Sonnet 5 用于延迟和吞吐量更敏感的通用生成、摘要、分类或智能助手场景;需要更强复杂推理能力时,再评估首尔区域提供的 Opus 5。具体价格、限额和性能应以目标区域的实际配置与压测结果为准。

先确认目标区域中的模型标识

模型名称与调用时使用的模型 ID 不一定相同,而且账户可见性和访问方式可能存在差异。不要在代码中猜测模型 ID,可以先使用 AWS CLI 查询。

# 首尔:查找 Anthropic 模型
aws bedrock list-foundation-models \
  --region ap-northeast-2 \
  --by-provider Anthropic \
  --query 'modelSummaries[].{Name:modelName,ModelId:modelId,Status:modelLifecycle.status}' \
  --output table

# 新加坡:查找 Anthropic 模型
aws bedrock list-foundation-models \
  --region ap-southeast-1 \
  --by-provider Anthropic \
  --query 'modelSummaries[].{Name:modelName,ModelId:modelId,Status:modelLifecycle.status}' \
  --output table

运行前需要安装并配置 AWS CLI,例如执行 aws configure 或通过工作负载角色提供凭证。随后从输出中找到 Claude Opus 5 或 Claude Sonnet 5 对应的准确模型 ID。如果控制台要求通过推理配置文件调用,则应使用控制台或 API 返回的配置文件 ID,而不是自行拼接标识符。

用 Python 发起固定区域的推理请求

下面示例采用 Bedrock Runtime 和 Anthropic Messages 请求格式。运行前,把 BEDROCK_MODEL_ID 替换为上一步查询到的模型 ID;首尔使用 ap-northeast-2,新加坡使用 ap-southeast-1。

python -m venv .venv
source .venv/bin/activate
pip install --upgrade boto3

export AWS_REGION=ap-northeast-2
export BEDROCK_MODEL_ID='替换为目标区域返回的模型ID'

保存为 invoke_claude.py:

import json
import os

import boto3

region = os.environ.get("AWS_REGION", "ap-northeast-2")
model_id = os.environ["BEDROCK_MODEL_ID"]

client = boto3.client("bedrock-runtime", region_name=region)

request_body = {
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 500,
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "请将下面的客服记录总结为三条待办事项:客户希望修改配送地址,并确认退款到账时间。"
                }
            ]
        }
    ]
}

response = client.invoke_model(
    modelId=model_id,
    contentType="application/json",
    accept="application/json",
    body=json.dumps(request_body).encode("utf-8"),
)

result = json.loads(response["body"].read())
print(json.dumps(result, ensure_ascii=False, indent=2))

执行:

python invoke_claude.py

代码显式创建目标区域的客户端,因此不会依赖 SDK 的隐式区域选择。生产环境还可以在启动时输出当前区域与模型 ID,并设置允许区域清单,避免部署参数错误:

allowed_regions = {"ap-northeast-2", "ap-southeast-1"}
if region not in allowed_regions:
    raise RuntimeError(f"不允许在该区域调用模型: {region}")

调用角色至少需要相应的 Bedrock 推理权限。验证阶段可以使用下面的最小示例,再根据组织安全策略把资源范围收紧到实际模型或推理配置文件:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "bedrock:InvokeModel",
      "Resource": "*"
    }
  ]
}

区域内推理不等于整条链路自动合规

这项能力保证的是模型推理在所调用的区域内处理,但一个完整应用通常还包含 API Gateway、Lambda、容器、对象存储、数据库、日志、链路追踪和备份。如果提示词在进入 Bedrock 前被写入其他区域的日志,或者模型输出被发送到跨区域分析系统,整体数据路径仍可能超出本地边界。

上线前建议逐项检查:

  • Bedrock Runtime 客户端是否显式固定到首尔或新加坡。
  • 输入数据、模型输出、缓存和会话历史是否存储在同一区域。
  • CloudWatch 日志、追踪数据和错误报告是否包含敏感提示词。
  • 是否存在跨区域复制、集中日志或外部可观测平台。
  • IAM 策略是否只允许批准的模型、角色和区域。
  • 目标区域的模型访问、服务配额、并发能力和降级策略是否已验证。

对于必须严格限制区域的系统,还可以在组织级策略中限制 aws:RequestedRegion,但应先确认该限制不会影响全局 AWS 服务或现有运维流程。

采用建议

更稳妥的迁移方式是先选择一条低风险业务链路,在目标区域完成端到端数据流审计和负载测试,再逐步扩大流量。测试不应只比较回答质量,还要记录首字节延迟、整体响应时间、令牌消耗、限流情况和失败重试行为。

首尔同时提供 Opus 5 与 Sonnet 5,适合通过相同测试集比较质量、成本与延迟;新加坡当前重点是 Sonnet 5。无论选择哪种模型,都应把区域和模型 ID作为受控部署参数,而不是散落在业务代码中的字符串。这样既能利用区域内推理,也能降低误调用其他区域和后续模型升级的风险。


相关推荐