tcb routes add
为指定域名创建一条或多条路由规则,把请求按「域名 + 路径」转发到云函数、云托管、静态托管等上游服务。
v3.0.0+
tcb routes 自 v3.0.0 起提供。
语法
tcb routes add --data '<JSON>' [options]
参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
--data <json> | 是 | 路由配置 JSON | — |
-e, --env-id <envId> | 否 | 环境 ID | 配置文件 envId |
配置格式
{
"domain": "api.example.com",
"routes": [
{
"path": "/api",
"upstreamResourceType": "CBR",
"upstreamResourceName": "my-service",
"upstreamResourceVersion": "可选,仅云函数支持",
"enable": true,
"enableAuth": false,
"enableSafeDomain": true,
"enablePathTransmission": false,
"pathRewrite": { "prefix": "/newpath" },
"qpsPolicy": {
"qpsTotal": 500,
"qpsPerClient": { "limitBy": "ClientIP", "limitValue": 20 }
}
}
]
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
domain | string | 是 | 目标域名,需已通过 tcb domains add 绑定 |
routes[].path | string | 是 | 路由路径,以 / 开头,不支持通配符。每段仅允许字母、数字、.、_、-,每段不超过 50 字符;不可使用保留前缀 /__auth、/.well-known |
routes[].upstreamResourceType | string | 是 | SCF(云函数)、CBR(云托管)、STATIC_STORE(静态托管)、WEB_SCF(Web 云函数)、LH(轻量应用服务器) |
routes[].upstreamResourceName | string | 是 | 上游服务名称 |
routes[].upstreamResourceVersion | string | 否 | 上游版本,仅 SCF / WEB_SCF 支持,取值见转发版本;缺省按 $DEFAULT 处理(v3.8.10+) |
routes[].enable | boolean | 否 | 是否启用路由,默认 true |
routes[].enableSafeDomain | boolean | 否 | 是否开启安全域名校验,默认 true |
enableAuth / enablePathTransmission / pathRewrite / qpsPolicy 的权威定义见配置文件-网关。命令式与声明式的差异:
pathRewrite:命令式仅支持prefix;声明式额外支持staticStorePrefixqpsPolicy:qpsTotal命令式上限 500、声明式 100–100000;qpsPerClient.limitValue声明式上限 30enableAuth/enablePathTransmission:两种方式语义一致
示例
# 转发到云托管服务
tcb routes add -e <envId> --data '{"domain":"api.example.com","routes":[{"path":"/api","upstreamResourceType":"CBR","upstreamResourceName":"my-service"}]}'
# 转发到云函数并开启身份认证
tcb routes add -e <envId> --data '{"domain":"api.example.com","routes":[{"path":"/func","upstreamResourceType":"SCF","upstreamResourceName":"my-function","enableAuth":true}]}'
# 静态网站根路径
tcb routes add -e <envId> --data '{"domain":"www.example.com","routes":[{"path":"/","upstreamResourceType":"STATIC_STORE","upstreamResourceName":"website"}]}'
# 带 QPS 限流
tcb routes add -e <envId> --data '{"domain":"api.example.com","routes":[{"path":"/v1","upstreamResourceType":"CBR","upstreamResourceName":"backend","qpsPolicy":{"qpsTotal":1000,"qpsPerClient":{"limitBy":"ClientIP","limitValue":50}}}]}'
# 一次创建多条路由
tcb routes add -e <envId> --data '{"domain":"api.example.com","routes":[{"path":"/v1","upstreamResourceType":"SCF","upstreamResourceName":"func-v1"},{"path":"/v2","upstreamResourceType":"CBR","upstreamResourceName":"service-v2"}]}'
# 转发到云函数的指定版本
tcb routes add -e <envId> --data '{"domain":"api.example.com","routes":[{"path":"/func-v2","upstreamResourceType":"SCF","upstreamResourceName":"my-function","upstreamResourceVersion":"2"}]}'
注意事项
path不支持通配符(/api/*、/*会被拒绝)。需要匹配一级路径下的所有子路径时,配置多条精确路径路由(如/api、/api/v1)STATIC_STORE只支持一级路径(如/或/static),多级路径会被拒绝- 同一域名下不能有重复路径,重复会报
INVALID_PARAM;调整已有路由用tcb routes edit - 命令式创建要求域名已通过
tcb domains add绑定;声明式tcb deploy会自动绑定域名