触发器
使用触发器命令可以创建和删除云函数的定时触发器。
触发器配置
在 cloudbaserc.json 配置文件中定义触发器:
{
"version": "2.0",
"envId": "xxx",
"functions": [
{
"name": "app",
"triggers": [
{
"name": "myTrigger",
"type": "timer",
"config": "0 0 2 1 * * *"
}
]
}
]
}
触发器配置项:
| 配置项 | 必填 | 类型 | 说明 |
|---|---|---|---|
name | 是 | String | 触发器名称,最大支持 60 个字符,支持 a-z、A-Z、0-9、- 和 _,必须以字母开头 |
type | 是 | String | 触发器类型,目前仅支持 timer(定时触发器) |
config | 是 | String | 触发器配置,使用标准 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 表达式中,"日"和"星期"字段同时指定值时,两者为"或"关系