很多小程序的早期开发者,为了快速起项目,会使用微信的云函数、云开发来作为后台的数据存储和交互,给我们提供非常多便利的同时,也需要关注一些问题:
- 假如这个项目火了!数据量一下子大上去后,套餐用完直接费用炸了~
- 除了把后端迁移到xx云服务器外,想继续使用云开发的话,有什么好的控制成本的方案呢?
一、业务起来,云开发费用炸了
下面来看下我们遇到的问题:
1.1 超出套餐后,费用很贵
这里可以看到,套餐最高的级别是999的那个,我们其中一个小程序已经购买了最贵的套餐,现在就遇到这个问题,超出套餐的部分价格会变得很贵。
1.2 云开发收费规则分析
注意,这里要仔细研究下这个计费模式,你会发现核心是内存占用
云函数并发数:云函数的并发数量是指在任意指定时间对函数代码的执行数量。对于当前的 SCF 函数来说,每个发布的事件请求就会执行一次。因此,这些触发器发布的事件数(即请求量)会影响函数的并发数。
每秒请求量 x 函数执行时间(按秒)
例如,考虑一个处理存储事件的函数,假定函数平均用时0.2秒(即200毫秒),存储每秒发布300个请求至函数。这样将同时生产 300 * 0.2 = 60 个函数实例。
数据库同时连接数 :数据库请求并发数量,如同时有三十个数据库操作请求,则有二十个会同时执行,剩下十个返回超出并发错误;一次数据库请求(无论小程序端发起还是云函数端发起)将耗费一个连接;每个云环境分别有一个同时连接数限制、独立计数。
常驻云函数闲置量:计算公式:
闲置的常驻云函数数量 * 该云函数的配置内存 * 闲置时长 * 常驻云函数闲置量定价
假如数据库查询平均耗时 10ms,那么一个连接可以支持 100qps(1000ms/10ms=100),20个连接可以支持到 2000qps。
二、优化方案:
2.1 云函数操作优化
一些需要增删改查的方案,尽可能放在一个云函数里实现,因为如果你修改后,再调用另外一个云函数查找结果,这样计算的时候,就算2个流量~
2.2 云函数内存调整
如果你用的云函数没有非常复杂的功能,考虑到云函数费用计算的公式。
可以把它的内存占用调整到最低档128MB,相比于默认的256MB,每次访问都能省一半内存,效果立竿见影,费用可以节省40%左右~
2.3 数据静态化
如果你用到云数据库,这里就会有一个问题,你可以一个操作需要调用云函数的同时,还需要使用数据库的资源,一旦超过套餐费用可不低哦,所以你需要做的核心是 尽可能减少对云开发和运数据的使用,我们可以采用以下的优化方案:
- 如果你的数据是JSON或者不经修改的配置数据,可以使用云存储,这个费用低多了
- 如果你有一些静态页面,授权文件,或者静态数据,可以使用云主页
三、官方费用计算网站
https://cloud.weixin.qq.com/cloudbase/price
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/billing/price.html
总结:
以上是针对你还是想 继续用微信云开发 的费用优化,对于早期开发项目的小伙伴,本人还是非常推荐使用的,毕竟开发成本是真的低,后期数据和流量上来了,再优化也来得及~
只需一招,减你一半费用:数据库操作,全改成小程序端执行。