跳到主要内容

配置操作

通过 tcb config pulltcb config update 命令,在本地 cloudbaserc.json 与云端资源之间同步配置。

拉取配置

tcb config pull 命令用于从云端拉取已部署资源的配置,并写入本地 cloudbaserc.json,帮助您快速同步云端状态或初始化本地配置文件。

命令格式

tcb config pull <module> [name...] [options]

其中 <module> 表示要拉取的资源模块,目前支持:

模块说明
fn拉取云函数配置
integration拉取集成配置

命令行为

拉取云函数配置tcb config pull fn):

  1. 查询云端配置:根据指定的函数名称,从云端获取已部署云函数的完整配置(超时时间、内存、运行时、环境变量、触发器等)。
  2. 合并写入本地
    • 若本地 cloudbaserc.json 不存在,则自动创建并写入拉取的配置。
    • 若文件已存在,对同名函数配置,CLI 会询问是否覆盖;对不同名函数,则追加到 functions 数组。
  3. 云函数不存在时:CLI 会询问是否根据本地项目目录推测配置并写入。

拉取集成配置tcb config pull integration):

  1. 查询云端配置:根据指定的集成名称,从云端获取已创建集成的完整配置(authTypeCode、envVariables 等)。
  2. 敏感字段脱敏:对密码类型的字段(如 API 密钥、证书等),云端返回的值为 ****** 占位符,需要用户手动填写真实值。
  3. 合并写入本地
    • 若本地 cloudbaserc.json 不存在,则自动创建并写入拉取的配置。
    • 若文件已存在,对同名集成配置,CLI 会询问是否覆盖;对不同名集成,则追加到 integrations 数组。
  4. 集成不存在时:返回错误提示,建议用户使用 tcb config init integration 创建配置模板。

命令参数

参数说明必填
[name...]云函数名称,支持指定一个或多个
--all拉取配置文件中所有函数的配置
-e, --env-id <envId>环境 ID
-o, --output <output>输出文件路径,默认为当前目录下的 cloudbaserc.json
--stdout将结果输出到控制台而非写入文件
--code-secret <codeSecret>代码加密函数的 CodeSecret
--dir <dir>指定目录用于推测配置(当云函数不存在时)
--yes跳过交互确认,自动覆盖已存在的配置

使用示例

拉取云函数配置

# 拉取单个函数的配置
tcb config pull fn myFunc

# 拉取多个函数的配置
tcb config pull fn func1 func2 func3

# 拉取配置文件中所有函数的配置
tcb config pull fn --all

# 将结果输出到控制台(不写文件)
tcb config pull fn func1 --stdout

# 指定输出文件路径
tcb config pull fn myFunc -o ./config/cloudbaserc.json

# 自动确认,跳过交互提示
tcb config pull fn --all --yes

拉取集成配置

# 拉取单个集成的配置
tcb config pull integration myPayment

# 拉取多个集成的配置
tcb config pull integration payment1 payment2

# 拉取配置文件中所有集成的配置
tcb config pull integration --all

# 将结果输出到控制台(不写文件)
tcb config pull integration myPayment --stdout

# 指定输出文件路径
tcb config pull integration myPayment -o ./config/cloudbaserc.json

# 自动确认,跳过交互提示
tcb config pull integration --all --yes
使用场景

云函数配置

  • 初始化本地配置:在新环境或新机器上,通过 pull 快速从云端同步配置,无需手动填写。
  • 配置审查:拉取后结合 tcb config diff fn 命令,对比本地与云端配置差异。
  • 团队协作:将拉取结果提交到版本库,确保团队成员使用一致的函数配置。

集成配置

  • 快速同步:从云端拉取已创建的集成配置,避免手动填写 authTypeCode 等复杂字段。
  • 配置备份:将云端集成配置导出到本地,便于版本管理和备份。
  • 团队协作:团队成员可以快速同步集成配置,只需填写敏感字段的真实值。

推送配置

tcb config update 命令用于将 cloudbaserc.json 中的配置推送到云端,实现本地配置与云端资源的同步。

命令格式

tcb config update <module> [name] [options]

其中 <module> 表示要推送的模块,目前支持:

模块说明
fn推送云函数配置
integration推送集成配置

命令参数

参数说明必填
[name]资源名称(云函数名或集成名)否(与 --all 二选一)
--all推送配置文件中所有资源的配置
-e, --env-id <envId>环境 ID
--timeout <timeout>[fn] 超时时间(秒)
--memory <memory>[fn] 内存大小(MB)
--runtime <runtime>[fn] 运行时
--handler <handler>[fn] 入口函数
--vpc <vpcId/subnetId>[fn] VPC 配置(格式: vpcId/subnetId)
--env <key=value>[fn] 设置环境变量,可多次使用
--env-mode <mode>[fn] 环境变量更新模式:merge(合并)或 overwrite(覆盖)
--yes跳过交互确认

使用示例

推送云函数配置

# 推送单个函数的配置
tcb config update fn hello

# 推送单个函数配置,并覆盖 timeout 参数
tcb config update fn hello --timeout 30

# 批量推送配置文件中所有函数的配置
tcb config update fn --all

# 推送函数配置并指定 VPC
tcb config update fn myFunc --vpc vpc-xxx/subnet-xxx

推送集成配置

# 推送单个集成的配置
tcb config update integration myPayment

# 批量推送配置文件中所有集成的配置
tcb config update integration --all

# 自动确认,跳过交互提示
tcb config update integration --all --yes

通过 CLI 参数快速更新

除了从配置文件读取,还可以直接通过 CLI 参数更新单个配置项:

# 更新超时时间
tcb config update fn myFunc --timeout 60 -e envId --yes

# 更新内存大小
tcb config update fn myFunc --memory 512 -e envId --yes

# 更新环境变量(合并模式,保留原有变量)
tcb config update fn myFunc --env DB_HOST=127.0.0.1 --env-mode merge -e envId --yes

# 更新环境变量(覆盖模式,替换所有变量)
tcb config update fn myFunc --env DB_HOST=127.0.0.1 --env-mode overwrite -e envId --yes

# 同时更新多个配置
tcb config update fn myFunc --timeout 30 --memory 256 --env NODE_ENV=production -e envId --yes

推送行为

推送云函数配置tcb config update fn):

  1. 读取本地配置:从 cloudbaserc.jsonfunctions 字段读取函数配置。
  2. 参数优先级:CLI 参数(如 --timeout)> 配置文件中的值。
  3. 环境变量处理
    • 若配置中包含环境变量,CLI 会询问更新方式:
      • 覆盖更新:用本地环境变量完全替换云端环境变量
      • 合并更新:本地与云端环境变量合并,本地覆盖同名变量
  4. 批量推送:使用 --all 参数时,会推送配置文件中所有函数的配置。

推送集成配置tcb config update integration):

  1. 读取本地配置:从 cloudbaserc.jsonintegrations 字段读取集成配置。
  2. 匹配云端实例:根据配置中的 keyId 字段匹配云端已有的集成实例。
  3. 智能合并
    • 对于可选字段(如 demoCodeFunctionName),若本地配置显式设置为空字符串 '',则会清除云端对应字段
    • 对于必填字段(如 authTypeCode),若本地未指定,则保留云端原值
  4. 批量推送:使用 --all 参数时,会推送配置文件中所有集成的配置。

集成更新的智能合并、环境变量更新模式详见 更新集成配置

使用场景

云函数配置

  • 配置同步:将本地修改的函数配置推送到云端,保持一致。
  • 批量更新:通过 --all 参数一次性更新多个函数的配置。
  • 参数覆盖:临时修改某个参数(如 --timeout)而不修改配置文件。

集成配置

  • 凭证轮换:更新集成的凭证信息(如 API 密钥、证书等)。
  • 配置管理:通过配置文件统一管理多个集成的配置。
  • 团队协作:团队成员通过配置文件同步集成配置,只需填写敏感字段。

对比配置

使用 tcb config diff fn 命令可以对比本地配置文件与云端函数配置的差异。

基本用法

# 对比指定函数的配置
tcb config diff fn <functionName>

# 对比配置文件中所有函数的配置
tcb config diff fn --all

命令参数

参数说明必填
fn模块名称,指定操作云函数配置
<functionName>云函数名称
--all对比配置文件中所有函数的配置
-e, --env-id <envId>环境 Id

使用示例

# 对比单个函数的配置差异
tcb config diff fn myFunc -e envId

# 对比所有函数的配置差异
tcb config diff fn --all -e envId

输出示例

命令会以表格形式输出配置对比结果:

函数 [myFunc] 配置对比

| 配置项 | 云端值 | 本地值 | 变更 |
|------------|---------|---------|------|
| timeout | 5 | 60 | ~ |
| memorySize | 256 | 512 | ~ |
| role | - | SCF_CLS | ~ |
| 函数类型 | HTTP | HTTP | |

变更标记说明:

  • ~:配置项有变更
  • 空:配置项无变更
使用场景
  • 部署前检查配置变更,避免意外覆盖
  • 排查配置不一致问题
  • 代码审查时确认配置变更