跳到主要内容

云函数管理

使用云函数管理命令可以查看、调用、复制和删除云函数,以及管理函数版本。

查看函数列表

tcb fn list

命令参数:

参数说明默认值
-l, --limit <limit>返回数据长度20
-o, --offset <offset>数据偏移量0

使用示例:

# 查看所有函数
tcb fn list

# 查看前 10 个函数
tcb fn list -l 10

# 查看第 21-40 个函数
tcb fn list -l 20 -o 20

查看函数详情

tcb fn detail <functionName>

使用示例:

# 查看 app 函数的详细信息
tcb fn detail app

下载函数代码

tcb fn code download <functionName> [destPath] [options]

参数说明:

参数说明必填
functionName函数名称
destPath下载目标路径
--fn-version <version>函数版本号,默认 $LATEST;可传已发布的正整数版本(如 1

使用示例:

# 下载到默认目录($LATEST 版本)
tcb fn code download app

# 下载到指定目录
tcb fn code download app ./my-functions/app

# 下载指定版本(如版本 1)到指定目录
tcb fn code download app ./my-functions/app-v1 --fn-version 1

# 下载指定版本,不指定路径时自动落到 <functionRoot>/<函数名>-v<版本号>/ 目录
tcb fn code download app --fn-version 1

版本说明:

  • 不传 --fn-version 或传 $LATEST 时,下载函数最新代码(与原有行为一致)
  • --fn-version 仅支持 $LATEST 或已发布的正整数版本号(如 12),传非法版本会直接报错
  • 下载指定版本时若未指定 destPath,代码会自动下载到 <functionRoot>/<函数名>-v<版本号>/ 目录,避免覆盖默认目录
  • 版本不存在时会提示该函数的可用版本列表,可配合 tcb fn list-function-versions 查看已发布版本

更新函数代码

tcb fn code update <functionName> [options]

命令参数:

参数说明必填
functionName函数名称
-e, --env-id <envId>环境 Id
--deployMode <deployMode>上传模式:cos(默认)、zip(限 1.5 MB)
--yes跳过交互确认

使用示例:

# 更新 app 函数的代码
tcb fn code update app

# 使用 zip 模式更新代码
tcb fn code update app --deployMode zip

# 跳过确认直接更新
tcb fn code update app --yes

调用云函数

# 调用指定函数
tcb fn invoke <functionName>

# 调用配置文件中的所有函数
tcb fn invoke

传入参数:

# Linux / macOS
tcb fn invoke app --params '{"key1": "value1", "key2": "value2"}'

# Windows (需要转义双引号)
tcb fn invoke app --params "{\"key1\": \"value1\", \"key2\": \"value2\"}"

使用示例:

# 调用 app 函数(无参数)
tcb fn invoke app

# 调用函数并传入参数
tcb fn invoke app --params '{"userId": "123", "action": "query"}'

# 调用所有函数
tcb fn invoke

复制云函数

tcb fn copy <sourceName> <targetName>

使用示例:

# 复制 app 函数为 app2
tcb fn copy app app2

# 强制覆盖已存在的目标函数
tcb fn copy app app2 --force

删除云函数

# 删除指定函数
tcb fn delete <functionName>

# 删除配置文件中的所有函数
tcb fn delete

命令参数:

参数说明必填
functionName函数名称否(不指定则删除配置文件中的所有函数)
-e, --env-id <envId>环境 ID
--force强制删除,跳过确认提示
--dry-run模拟运行,仅预览将要删除的函数,不实际执行

使用示例:

# 删除 app 函数
tcb fn delete app

# 删除所有函数
tcb fn delete

# 预览将要删除的函数(不实际执行)
tcb fn delete app --dry-run

# 强制删除,跳过确认
tcb fn delete app --force

版本管理

发布新版本

tcb fn publish-version <functionName> [description]

参数说明:

参数说明必填
functionName函数名称
description版本描述

使用示例:

# 发布新版本(无描述)
tcb fn publish-version app

# 发布新版本并添加描述
tcb fn publish-version app "修复了登录逻辑问题"

# 发布包含功能更新的版本
tcb fn publish-version app "v1.2.0: 新增用户画像功能"

查看版本列表

tcb fn list-function-versions <functionName>

使用示例:

# 查看 app 函数的所有版本
tcb fn list-function-versions app

拉取函数环境变量

使用 tcb fn env pull 命令将云函数的环境变量拉取到本地文件:

tcb fn env pull <name> --output-file <file> [options]

参数说明:

参数说明必填
name函数名称
--output-file <file>输出文件路径,如 .env.local
-e, --env-id <envId>环境 ID,未指定时交互选择

使用示例:

# 将 app 函数的环境变量导出到 .env
tcb fn env pull app --output-file .env

# 导出到 .env.local 并指定环境
tcb fn env pull app --output-file .env.local --env-id env-xxxx

# 导出到指定目录并以 JSON 格式输出结果
tcb fn env pull app --output-file ./configs/dev.env --json

注意事项

下载函数代码:

  • 如果不指定 destPath,代码会下载到 functionRoot 配置的目录下
  • 下载后会自动创建以函数名称命名的文件夹
  • 指定 --fn-version 下载非 $LATEST 版本时,会自动创建 <函数名>-v<版本号> 文件夹,与默认目录区分,避免覆盖
  • 版本号语义与 tcb fn publish-version / tcb fn list-function-versions 对齐

code update 与 deploy 的区别:

  • tcb fn code update 仅更新函数代码和执行入口,速度更快
  • tcb fn deploy 更新代码、配置、触发器,功能更完整

复制云函数:

  • 会复制函数代码、配置(超时、内存、环境变量、VPC等)、执行入口和运行时
  • 不会复制函数的触发器,需要手动配置
  • 如果目标函数名已存在,需要使用 --force 参数强制覆盖

删除云函数:

  • 删除操作不可恢复,请谨慎操作
  • 删除前建议先使用 tcb fn code download 备份函数代码
  • 删除函数后,相关的触发器、日志等也会被清理

版本管理:

  • 函数创建后默认具有一个 $LATEST 版本(最新版本)
  • $LATEST 版本的配置和代码支持修改
  • 发布新版本时,以当前 $LATEST 版本为基础创建不可变快照
  • 已发布的版本号递增(1, 2, 3...),内容不可修改

拉取函数环境变量:

  • --output-file 为必填参数,未指定时会报错
  • 导出文件采用 KEY=value 格式,换行和双引号会自动转义
  • 指定 --json 时,输出包含函数名、环境 ID、输出文件路径、变量数量及变量名列表