云函数触发器
触发器(Trigger)是触发函数执行的方式。我们可以给云函数绑定触发器来控制函数的调用。
INFO
当前 触发器 仅支持 定时触发器 类型。
创建触发器

第一步: 点击函数列表右侧的触发器按钮
第二步: 新建触发器
第三步: 输入触发器的名称,后期方便搜索和管理
第四步: 选择触发器的类型,当前仅支持定时触发器
第五步: 选择定时任务的执行策略,这里是支持 cron原生表达式的。
如您对 cron 表达式不熟悉,可点击下方链接选择预置的三种方案。
或者也可以点击 更多示例 按钮找到您需要的定时策略,也可以在 在线Cron表达式 网站上生成您需要的表达式。
一个具体的例子
在微信公众号开发过程中,通常需要我们使用中控服务器统一获取和刷新 access_token ,其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务。 一般来说, access_token的有效期是 2小时, 利用定时触发器可以很好的解决这个问题。
- 首先我们创建一个名为
get-access-token的云函数
typescript
import cloud from '@lafjs/cloud'
import axios from 'axios'
const AT_BASEURL = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential'
const APP_ID = 'your appid'
const APP_SECRET = 'your app secret'
export async function main(ctx: FunctionContext) {
try {
const request_url = `${AT_BASEURL}&appid=${APP_ID}&secret=${APP_SECRET}`
const { data: { access_token, expires_in, errcode, errmsg } } = await axios.get(request_url)
if (errcode) return { errcode, errmsg }
// write into cloud.shared
cloud.shared.set('_access_token', access_token)
cloud.shared.set('_expired_time', expires_in)
} catch (error) {
return {
errcode: 500,
err_msg: 'Get access token error: ' + error.toString() }
}
}
上述代码中,我们遵循微信开放文档中的 接口调用请求说明 来请求 access_token, 并将其存入 cloud.shared 中, 其他业务函数可以随时进行读取。
- 使用触发器

还记得刚才创建触发器的过程吗,我们只需选择关联的函数为 get-access-token, 并将 Cron 表达式设为 2小时,即可实现每两小时去请求微信的接口,来刷新 access_token 以保证有效。
laf 云开发