很多时候,我们会面临在小程序的后台实现多重功能,比如用户管理、日志分析、数据排序等,不同的功能之间还会相互调用。如果把这些功能都写到一个云函数里,会造成云函数逻辑过于复杂,执行速度较慢等问题。此时,我们可以使用微信提供的SDK “wx-server-sdk” ,很方便的实现函数之间的调用。把功能函数拆分成一个个独立的云函数,会有很多好处:
尽可能的利用每个函数的并发能力。在小程序云开发中,每个函数都有自己默认的函数并发限制,如果把函数功能都写在一起,会很快的耗尽该函数的并发能力(函数并发=QPS*函数执行时间(秒))。
降低云函数的维护成本。如果某个云函数出错了,并不会影响到其他云函数的使用;而且如果想对某个函数做修改,也更加方便。
提升资源的使用效率。云函数的收费,调用次数是很便宜的,贵的是GBS(内存*时间);尽可能的降低函数执行时间,也能节省一定的成本。另外,根据用户的经验来看,云函数的超时时间也要尽可能的设置的小一点。比如在云函数里执行数据库的操作,如果出现了慢查询(索引没有建立好、单次查询数据过大等),会很快耗尽函数的并发,进而导致服务受损。
本文会举例如何使用SDK,快速实现函数之间的调用,并实现邮件发送。
首先,我们创建函数test,在test云函数中发起对sendmail云函数的调用;
test函数的代码如下:
index.js
在微信IDE里右键选择“上传并部署(云端安装依赖)”
sendmail函数的代码如下:
需要修改下index.js里的邮箱地址,然后在微信IDE里右键选择“上传并部署(云端安装依赖)”。
前往“云开发”控制台进行测试:
选中“test”函数,点击右上角的测试按钮,查看效果: