如何在本地调试Zoho Catalyst实时触发的事件函数
本地调试Zoho Catalyst事件函数响应实时Datastore事件的方案
抓真实事件payload,本地模拟触发
- 先在云端部署个极简版事件函数,啥逻辑都不用写,就把触发的
event对象完整打印到日志里:console.log(JSON.stringify(event)) - 去Datastore插一条测试数据触发事件,然后到Catalyst控制台的函数日志里把完整的事件JSON复制出来,存成本地文件,比如
real_insert_event.json - 在本地函数代码里加个判断,本地运行时直接读这个文件当事件参数:
module.exports = async (event) => { // 本地调试模式 if (process.env.NODE_ENV === 'dev') { const fs = require('fs'); event = JSON.parse(fs.readFileSync('./real_insert_event.json', 'utf8')); } // 你的发邮件逻辑放这 // ... }; - 本地设置环境变量
NODE_ENV=dev,直接运行函数就能用真实事件数据调试,不用每次部署
- 先在云端部署个极简版事件函数,啥逻辑都不用写,就把触发的
反向代理把本地函数暴露给云端事件触发
- 用
catalyst serve启动本地模拟器,本地函数会跑在http://localhost:9000 - 用ngrok这类工具把本地端口转成公网URL:
ngrok http 9000,拿到类似https://xxxx-xx-xx-xx-xx.ngrok.io的地址 - 临时修改云端的事件规则,把触发目标改成这个公网URL(记得调试完改回云端函数)
- 现在去Datastore插数据,事件会直接打到你本地的函数,你可以在IDE里打断点一步步调
- 用
关键注意点
- 调试完务必把事件规则改回云端函数,不然以后的事件都会往你本地打
- 本地调试时,要确保邮件服务的配置和云端一致,可以用
catalyst pull拉取云端的环境配置到本地
内容的提问来源于stack exchange,提问作者Raghu
相关产品推荐
相关产品推荐

