Loading
close

租户和配额

time 更新时间:2026-10-08 16:41:12

租户和配额

租户对应用户登录身份中的项目。项目和部门上下文由 Token 确定,调用方不能通过查询参数或请求头切换资源所属项目。

租户命名空间是 Beacon 在 Kubernetes 中为当前项目使用的工作空间。创建操作具有幂等性:命名空间已存在时返回 200,首次创建成功时返回 201;提交的名称会归一为小写的 Kubernetes 命名空间名称。未配置 Kubernetes 时,查询接口返回 exists=true、ready=true,以避免非集群环境被初始化流程阻塞,但创建接口返回 503。

计算配额接口返回 Horizon 项目配额中 eks_managed 产品的资源配额和当前用量。该结果表示当前项目可使用的 CPU、内存和 AI 加速卡等计算资源,不等同于集群剩余资源或套餐的请求数、Token 数限流。

模型网关产生的请求数和 Token 统计请参见Token 用量。

方法 路径(产品接口统一前缀 /api/v1) 功能
GET /tenants/current 获取当前租户上下文
GET /tenants/current/namespace 查询租户命名空间状态
POST /tenants/current/namespace 创建租户命名空间(幂等)
GET /tenants/current/quota 获取当前租户计算配额

获取当前租户上下文

功能介绍

获取 Token 所属项目和部门信息。

访问要求:有效 Token。

URI

GET /api/v1/tenants/current

请求消息

无请求体。

响应消息

参数 参数类型 描述
projectId string 当前项目 ID
projectName string 当前项目名称
domainId string 当前部门 ID
domainName string 当前部门名称

请求示例

GET https://{endpoint}/api/v1/tenants/current
x-keystone-token: <Keystone Token>

正常响应示例

HTTP/1.1 200
Content-Type: application/json
{
  "projectId": "project-a1b2c3d4",
  "projectName": "生产项目",
  "domainId": "domain-a1b2c3d4",
  "domainName": "研发部门"
}

状态码与错误码

成功状态码:200。

HTTP error 说明
401 unauthorized authentication required

后端错误与错误封装见调用方式。

查询租户命名空间状态

功能介绍

查询当前项目是否已经具有 Beacon 使用的 Kubernetes 命名空间。接口只返回是否存在和是否就绪,不返回实际命名空间名称。

访问要求:有效 Token。

URI

GET /api/v1/tenants/current/namespace

请求消息

无请求体。

响应消息

参数 参数类型 描述
exists boolean 当前项目的 Beacon 命名空间是否存在
ready boolean 当前项目的 Beacon 命名空间是否可用;当前实现与 exists 保持一致

请求示例

GET https://{endpoint}/api/v1/tenants/current/namespace
x-keystone-token: <Keystone Token>

正常响应示例

HTTP/1.1 200
Content-Type: application/json
{
  "exists": true,
  "ready": true
}

状态码与错误码

成功状态码:200。

HTTP error 说明
401 unauthorized authentication required
403 forbidden 无权读取当前项目的 Kubernetes 命名空间状态
502 backend_unavailable 查询 Kubernetes 命名空间失败,详细原因由 message 返回

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

创建租户命名空间(幂等)

功能介绍

为当前项目创建 Beacon 使用的 Kubernetes 命名空间,并初始化推理引擎权限和镜像拉取凭据。当前项目的命名空间已经存在时不重复创建,而是补齐所需初始化配置。

访问要求:有效 Token。当前项目尚未创建命名空间时,还需要项目作用域 Token 和 namespace/project/bootstrap 权限;命名空间已经存在时,本接口按幂等操作返回现有状态。

URI

POST /api/v1/tenants/current/namespace

请求消息

Content-Type: application/json。

参数 参数类型 是否必选 描述
name string 是 期望的命名空间名称;服务端转换为小写,将空格、点和下划线转换为连字符,并截断为最长 63 个字符

响应消息

参数 参数类型 描述
exists boolean 当前项目的 Beacon 命名空间是否存在
ready boolean 当前项目的 Beacon 命名空间是否可用

请求示例

POST https://{endpoint}/api/v1/tenants/current/namespace
x-keystone-token: <Keystone Token>
Content-Type: application/json
{
  "name": "beacon-demo"
}

正常响应示例

首次创建成功:

HTTP/1.1 201 Created
Content-Type: application/json

命名空间已经存在:

HTTP/1.1 200 OK
Content-Type: application/json

两种情况的响应体相同:

{
  "exists": true,
  "ready": true
}

状态码与错误码

成功状态码:200, 201。

HTTP error 说明
400 invalid_request 请求体格式错误,或 name 无法转换为有效的命名空间名称
401 unauthorized authentication required,或缺少项目作用域 Token
403 forbidden 缺少命名空间初始化权限,或 Kubernetes 拒绝创建
409 conflict 指定名称已被其他命名空间占用
502 backend_unavailable 创建或初始化 Kubernetes 命名空间失败,详细原因由 message 返回
503 backend_unavailable Kubernetes 未配置,不能创建命名空间

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

获取当前租户计算配额

功能介绍

获取当前项目在 Horizon 中的 eks_managed 计算资源配额、已用量和剩余量。项目和部门由 Token 确定,接口不接受其他项目 ID。

访问要求:有效 Token,并具有当前项目的计算配额读取权限。

URI

GET /api/v1/tenants/current/quota

接口请求头

请求头 说明
Cookie 可选;存在时转发给 Horizon 配额服务。使用Token认证时,仍需提供x-keystone-token;平台登录会话认证见调用方式

请求消息

无请求体。

响应消息

参数 参数类型 描述
source string 配额数据来源,当前为 horizon_projectquota
product string Horizon 云产品名称,当前为 eks_managed
quotas map<string, object / null> 资源名称到配额信息的映射;只包含 eks_managed 产品返回的资源
quotas.*.used number 当前项目已使用数量
quotas.*.quota number 当前项目配额上限;负数表示不限量
quotas.*.available number 剩余数量,计算方式为 quota - used;不限量时省略
quotas.*.unlimited boolean 是否不限量
quotas.*.unit string 计量单位,例如 core、MiB、GiB 或 card;空值时可能省略
updatedAt string(date-time) 配额数据获取时间,RFC3339

请求示例

GET https://{endpoint}/api/v1/tenants/current/quota
x-keystone-token: <Keystone Token>

正常响应示例

HTTP/1.1 200
Content-Type: application/json
{
  "source": "horizon_projectquota",
  "product": "eks_managed",
  "quotas": {
    "cpu": {
      "used": 12,
      "quota": 64,
      "available": 52,
      "unlimited": false,
      "unit": "core"
    },
    "memory": {
      "used": 32768,
      "quota": 131072,
      "available": 98304,
      "unlimited": false,
      "unit": "MiB"
    },
    "NVIDIA-H100-80GB-HBM3": {
      "used": 2,
      "quota": 8,
      "available": 6,
      "unlimited": false,
      "unit": "card"
    }
  },
  "updatedAt": "2026-09-21T00:00:00Z"
}

状态码与错误码

成功状态码:200。

HTTP error 说明
401 unauthorized authentication required
403 forbidden 当前用户无权读取项目配额
404 not_found 当前项目未配置计算配额
502 backend_unavailable Horizon 配额查询失败,详细原因由 message 返回
503 backend_unavailable Horizon 配额服务未配置

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品