云函数管理
使用云函数管理命令可以查看、调用、复制和删除云函数,以及管理函数版本。
查看函数列表
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或已发布的正整数版本号(如1、2),传非法版本会直接报错- 下载指定版本时若未指定
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、输出文件路径、变量数量及变量名列表