Sign inGet Started

Base URL 与区域

Bird API 由区域主机提供服务。每个请求直接发送到存储您组织数据的区域。API 不提供全局数据平面 URL。
Base URL服务范围
https://us1.platform.bird.comus1 中组织的所有 /v1 数据平面端点
https://eu1.platform.bird.comeu1 中组织的所有 /v1 数据平面端点
https://platform.bird.com仅限与区域无关的接口:/v1/auth 和 /v1/admin
区域代码由两个小写字母(表示地理位置)加一个实例数字组成(^[a-z]{2}[0-9]+$)。us1 和 eu1 已上线;该命名方案可在无需客户端更改的情况下容纳未来的区域,例如 us2 和 ap1。

组织绑定到一个区域

每个组织在注册时被分配一个区域。区域根据您的位置自动检测,可在确认前更改,在 v1 中不可变。工作区、API 密钥、消息、收件人数据和事件日志都保留在该区域内,绝不会跨区域复制。这种隔离支持数据驻留承诺,例如 EU 组织的数据存储和处理均在 EU 内完成。
只有身份验证和账户管理(/v1/auth、/v1/admin)使用全局复制的数据,因此它们由非区域主机 platform.bird.com 提供服务。

路由:密钥决定主机

API 密钥在前缀中编码了所属区域:bk_us1_... 密钥属于 us1,bk_eu1_... 密钥属于 eu1。请将每个密钥发送到对应的区域主机。
发送到错误区域的请求会被拒绝并返回 421 Misdirected Request,而不是被转发。错误消息中会指明正确的主机:
代码示例
{
  "type": "misdirected_error",
  "code": "E01010",
  "name": "MisdirectedRequest",
  "message": "Organization belongs to region eu1 but this request reached us1. Send the request to eu1.platform.bird.com.",
  "request_id": "..."
}
每个 API 响应还带有一个 X-Bird-Region 请求头,指明服务该请求的区域,可用于确认请求实际到达了哪个区域。

SDK 和 CLI 自动路由

官方 SDK 和 CLI 会从密钥前缀解析区域并选择主机。使用 bk_eu1_... 密钥时,所有调用无需配置即可发送到 eu1.platform.bird.com。您可以为测试环境覆盖推断的主机:在 TypeScript SDK 中使用 baseUrl,在 Go SDK 中使用 option.WithBaseURL,或在 CLI 上使用 --base-url(或 BIRD_API_URL)。

相关内容