以下页面描述网关的预期行为。开源版本与企业版本正在拆分中,首个正式版本发布后细节会同步更新。
Provider 与凭据
接入一个上游服务,以及用于访问它的密钥。
Provider 是一个上游 HTTP 服务,由名称、base URL 以及它接受的路由标识。 provider 相关的任何东西都没有编译进二进制 —— 接入一个 provider 就是一次控制台操作。
新增 provider
| 字段 | 说明 |
|---|---|
| 名称 | 你给它起的标签,会出现在指标、日志与路由日志中 |
| Base URL | 协议与主机名。路径来自路由,不在这里填 |
| 路由 | 该 provider 接受的路径模式 |
| 默认地区 | 云签名方案在请求未携带地区时使用 |
没有配置路由的 provider 永远不会被选中。路由才是让它可达的东西。
新增凭据
| 字段 | 说明 |
|---|---|
| 类型 | Header、Bearer Token,或云厂商签名方案 |
| 值 | 密钥本身。只在写入时提交一次,之后只显示指纹 |
| 权重 | 当 provider 有多个凭据时,该凭据的相对流量占比 |
| 模型白名单 | 可选。把该凭据限定在一组模型上 |
云签名类凭据签名的是整个请求,而不是给请求加一个 Header,因此它必须是所在 provider 上 唯一的凭据。
密钥池
一个 provider 上的多个凭据构成密钥池。故障转移在池内轮转,负载均衡在池内分配 —— 容错能力来自池子的大小:只有一个凭据的 provider,没有可轮转的对象。
凭据可以停用而不删除。当你怀疑某个密钥可能已泄露、但还不想丢掉它在指标里的历史时, 停用是合适的做法。
模型白名单
当一个 provider 用不同的密钥承载不同模型时,白名单可以避免把一个请求发给无法服务该模型的密钥。 网关在发送前检查白名单,因此不匹配不会产生任何上游调用。
控制台为每个 provider 展示什么
- 请求量、Token 与成本,按模型拆分
- 按失败分类的错误率
- 哪些凭据在轮转中,哪些处于暂停状态
- 当前生效的权重