成本归属标签
成本归属标签让组织按自己的维度归属用量和成本,例如部门、事业部、子公司、项目或成本中心。组织先声明标签键,再在调用方 API Key、团队和成员上设置 key=value,或者从调用方的 JWT 读取取值。每个请求按其运行时解析出的标签值归属。之后可以在 成本分析 页面按这些值拆分支出,用标签预算为其封顶,并让限流策略按标签匹配和拆分流量。
标签在 AISIX Enterprise 和 AISIX Cloud 中的行为一致。
前提条件
开始之前,请准备以下内容:
- 声明标签键需要组织的 owner 或 admin 角色,或拥有
tag_keys写权限的自定义角色。在某个资源上设置标签,需要该资源的写权限。 - 每个需要归属的环境都使用会在用量上记录标签的网关。1.6.x 及更早版本的网关不会记录,参见网关版本要求。
- 使用 Admin API 示例时,需要控制面地址和具有写权限的 Admin Token:
# AISIX_CP 包含 /api,末尾不带斜杠。
# 本地 AISIX Enterprise 快速入门使用 http://localhost:8080/api。
export AISIX_CP="YOUR_AISIX_CONTROL_PLANE_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export TEAM_ID="YOUR_TEAM_ID"
export ENV_ID="YOUR_ENVIRONMENT_ID"
声明标签键
标签键必须先在组织中声明,资源才能带上它。预先声明可以统一用词,避免 department 同时被写成 dept 或 Department。
- 在组织导航中打开 标签键,选择 新建标签键。
- 输入 键,例如
department。 - 可以填写 显示名称 和 描述。
- 选择 声明标签键。
通过 Admin API 声明标签键:
curl -sS -X POST "${AISIX_CP}/tag_keys" \
-H "Authorization: Bearer ${AISIX_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"key": "department",
"display_name": "Department",
"description": "Cost center the usage is charged to."
}'
标签键遵循以下规则:
- 以小写字母开头,只包含小写字母、数字和下划线,最多 63 个字符:
^[a-z][a-z0-9_]{0,62}$。 - 声明后不能修改键本身。显示名称和描述可以随时编辑。
- 每个组织最多声明 32 个键。超出时返回
400,错误码为TAG_KEY_LIMIT;声明已存在的键返回409。 - 所有成员都可以读取已声明的键,写入需要
tag_keys写权限。
删除标签键
只要有预算、限流策略或信任服务提供方的 tag_claims 在使用某个标签键,删除就会被拒绝,返回 409,错误码为 TAG_KEY_IN_USE。错误信息会列出它们,请先移除。
否则,删除会把该键从所有带有它的调用方 API Key、团队和成员上移除,之后的请求不再归属到它。已记录的用量保留当时的标签,因此已删除键的值仍会出现在已存的历史数据中。只要所选时间范围内的用量带有该键,成本分析 就会继续提供它,并标记为 已删除。