部署前校验(tcb validate)
版本要求
tcb validate 自 v3.8.0 起提供。
tcb validate 校验项目的 cloudbaserc.json(v2.1)配置是否合法、资源目录是否存在、资源引用是否一致,在部署前尽早发现问题。它是 声明式部署(tcb deploy) 的配套命令。
快速开始
# 校验当前目录的 cloudbaserc.json
tcb validate
# 指定配置文件
tcb validate --config-file ./config/prod.json
# 校验指定 mode(应用 envOverrides 覆盖)
tcb validate --mode dev
校验通过输出资源概览,无错误时退出码为 0:
配置版本:2.1
资源概览:云函数 1 个,静态托管 1 个,数据库 0 个,网关路由 2 条
校验项
| 校验项 | 说明 | 示例 |
|---|---|---|
| Schema 版本 | 配置符合 v2.1 Schema(字段合法、无额外属性) | gateway.routes 不允许 cdnType 等未知字段 |
| envId | 配置必须包含 envId | - |
| requiredEnv | requiredEnv 声明的必填环境变量是否提供 | - |
| 资源目录 | 函数目录 / hosting root 等是否存在 | functions/pay-common/ 缺失报错 |
| 一致性 | 网关 target 引用的函数/hosting 是否存在于配置 | target: "function:pay-common" 但函数未定义 |
输出与 退出码
| 情况 | 输出 | 退出码 |
|---|---|---|
| 校验通过 | 配置版本 + 资源概览 | 0 |
| 校验失败 | 错误列表(字段 + 修复建议) | 1 |
错误(2)
- gateway.routes.0: 配置不符合 v2.1 Schema:should NOT have additional properties
修复建议:请检查 gateway.routes.0 字段
- gateway.routes.1: 配置不符合 v2.1 Schema:should NOT have additional properties
修复建议:请检查 gateway.routes.1 字段
与 tcb deploy 的关系
tcb deploy内部也做轻量配置守卫(envId存在、配置合法)- 建议在 CI 中先跑
tcb validate再tcb deploy,尽早暴露配置问题 - 完整校验(Schema/目录/一致性)以
tcb validate为准