跳到主要内容

触发器

使用触发器命令可以创建和删除云函数的定时触发器。

触发器配置

cloudbaserc.json 配置文件中定义触发器:

{
"version": "2.0",
"envId": "xxx",
"functions": [
{
"name": "app",
"triggers": [
{
"name": "myTrigger",
"type": "timer",
"config": "0 0 2 1 * * *"
}
]
}
]
}

触发器配置项:

配置项必填类型说明
nameString触发器名称,最大支持 60 个字符,支持 a-zA-Z0-9-_,必须以字母开头
typeString触发器类型,目前仅支持 timer(定时触发器)
configString触发器配置,使用标准 Cron 表达式

创建触发器

# 创建指定函数的触发器
tcb fn trigger create <functionName>

# 创建配置文件中所有函数的触发器
tcb fn trigger create

使用示例:

# 为 app 函数创建触发器
tcb fn trigger create app

# 为所有函数创建触发器
tcb fn trigger create

删除触发器

# 删除指定函数的指定触发器
tcb fn trigger delete <functionName> <triggerName>

# 删除指定函数的所有触发器
tcb fn trigger delete <functionName>

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

使用示例:

# 删除 app 函数的 myTrigger 触发器
tcb fn trigger delete app myTrigger

# 删除 app 函数的所有触发器
tcb fn trigger delete app

# 删除所有函数的所有触发器
tcb fn trigger delete

Cron 表达式

Cron 表达式有七个必需字段,按空格分隔:

字段位置字段名称取值范围通配符
第一位0-59 的整数, - * /
第二位分钟0-59 的整数, - * /
第三位小时0-23 的整数, - * /
第四位1-31 的整数, - * /
第五位1-12 的整数或 JAN-DEC, - * /
第六位星期0-6 的整数或 MON-SUN (0 表示周日), - * /
第七位1970-2099 的整数, - * /

通配符说明:

通配符含义示例
,代表并集在"小时"字段中 1,2,3 表示 1 点、2 点和 3 点
-包含指定范围的所有值在"日"字段中 1-15 表示 1 号到 15 号
*表示所有值在"小时"字段中 * 表示每个小时
/指定增量在"分钟"字段中 1/10 表示从第 1 分钟开始每隔 10 分钟

常用示例:

*/5 * * * * * *         每 5 秒触发一次
0 0 2 1 * * * 每月 1 日凌晨 2 点触发
0 15 10 * * MON-FRI * 周一到周五每天上午 10:15 触发
0 0 10,14,16 * * * * 每天上午 10 点、下午 2 点、下午 4 点触发
0 */30 9-17 * * * * 每天上午 9 点到下午 5 点内每半小时触发
0 0 12 * * WED * 每个星期三中午 12 点触发

注意事项

  • 目前一个函数仅支持配置一个触发器
  • CLI 会读取 cloudbaserc.json 中的触发器配置并创建
  • 如果配置文件中没有触发器配置,创建操作会失败
  • 在 Cron 表达式中,"日"和"星期"字段同时指定值时,两者为"或"关系