小程序雲開發 - 雲函數定時觸發器配置
新建雲函數timer,小程序會新建兩個文件 index.js 和 package.json數據庫
定時觸發器的效果等同於以下一段代碼,定時觸發器並不能傳遞參數,須要將參數寫在雲函數中。json
wx.cloud.callFunction({ name:'timer' })
本文以定時刷新access_token爲例小程序
1.雲函數內容
index.jsapp
// 雲函數入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() var request = require('request') // 定時器 exports.main = async(event, context) => { const appkey = ''; const appsecret = ''; var url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + appkey + '&client_secret=' + appsecret; return new Promise((resolve, reject) => { request({ url: url, method: "POST", json: true, headers: { "content-type": "application/json", }, }, function(error, response, body) { if (!error && response.statusCode == 200) { console.log('通行證爲' + body.access_token) resolve(body.access_token) //更新數據庫中的access_token } }) }) }
如今已經實現了雲函數功能,實現觸發器須要在timer文件夾下新建 config.json配置文件。async
config.json文件就是觸發器配置的核心文件,文件內容以下,具體匹配規則請查看官方文檔。函數
這段代碼規則爲天天凌晨兩點觸發一次。ui
config.jsonurl
{ "triggers": [ { "name": "myTrigger", "type": "timer", "config": "0 0 2 * * * *" } ] }
2.部署過程
- 選擇timer函數總體 - > 建立並部署(雲端安裝依賴)
- 單獨選中config.json文件 - > 上傳觸發器