转发版本
路由的 upstreamResourceVersion 字段指定请求转发到云函数的哪个版本。
v3.8.10+
upstreamResourceVersion 自 v3.8.10 起支持,作用于 SCF 与 WEB_SCF 路由,其他上游类型忽略该字段。
取值
| 取值 | 语义 |
|---|---|
版本号(1、2…) | 转发到指定版本,该版本须已发布 |
$LATEST | 转发到最新版本,随新版本发布自动切换 |
$DEFAULT | 转发到资源,流量比例由资源侧版本配置决定,为字段缺省值 |
各命令的行为
| 命令 | 行为 |
|---|---|
tcb routes add 缺省字段 | 服务端按 $DEFAULT 处理 |
tcb routes edit 缺省字段 | 保留现有绑定,不做修改 |
tcb routes edit 传 $DEFAULT | 清除版本绑定,恢复资源侧流量控制 |
tcb routes list | 「上游版本」列输出当前绑定值,未绑定时为 -;--json 输出字段为 upstreamResourceVersion |
⚠️ 域名预检
VerifyHTTPServiceRoute不识别该字段,CLI 在预检前自动剔除。预检只覆盖域名归属、配额与路径冲突,不校验版本是否存在;版本无效时由创建或修改接口返回错误。
使用
版本号须为已发布的函数版本。发布新版本用 tcb fn publish-version,部署命令只更新 $LATEST,不产生版本号。
版本绑定作用于整条路由,不支持权重。需要按比例分发时用 $DEFAULT,由函数侧的别名流量配置控制。
# 新版本单独一条路由,验证后再切换主路由
tcb routes add -e <envId> --data '{"domain":"api.example.com","routes":[{"path":"/func-canary","upstreamResourceType":"SCF","upstreamResourceName":"my-function","upstreamResourceVersion":"3"}]}'
tcb routes edit -e <envId> --data '{"domain":"api.example.com","routes":[{"path":"/func","upstreamResourceVersion":"3"}]}'