前几天,有朋友在群里转发了一个小程序的宣传图,深深的吸引了我...
纳尼???睡后???躺赚???听起来似乎不错....
于是大致了解了一下这种外卖券小程序的整个闭环。
其实各种电商外卖平台都有推荐返佣系统,申请后,可以生成你自己的小程序链接,用户点击后领券,订餐使用优惠券你就可以获得返佣。
小程序呢,其实就简单了,无非是分门别类列出来,用户点击跳转领取就好了。
这样简单的小程序,其实...
我也能干!
撸起袖子,说干就干,2、3天撸完代码,效果也还满意。还加入了一些订阅提醒,企业微信的营销玩法。
首页和管理中心:
部分管理设置截图:
全套云开发,小程序的管理后台、数据设置也直接集成在了小程序中,也不用在单独做一套后台管理系统了。
正所谓一机在手,天下我有。
发到群里,发现感兴趣的朋友还不少,一个个非要我给部署一下玩一玩躺赚。迫于无奈,赶鸭子上架。
这时候新的问题来了,好些人对于小程序实在是不了解,即使我给出源码,他也根本不可能完成设置开发者,ide打开,上传,提审这些工作。
全靠我代处理么?想想就头大......
接下来谈谈几种解决方案:
1 . 第三方服务商代开发
基本上从小程序第三方服务商平台推出的时候,就一直在做这块,也是相当熟悉了。理论上来说,这是最完美的解决方案。现在第三方平台也很完美的支持了云开发代开发,整个链路比较通畅。
第三方服务商代开发的第一版云开发接口,可以实现从开通云开发、创建环境、部署云函数一系列的代完成工作,云环境归属授权方。小程序部分,依然和传统第三方代开发没有区别。对于授权小程序,自己的环境,自己的云函数,更像是一种私密部署的模式。
第三方服务商代开发的第二版(内测中),和现行云开发代开发略有区别,底层走的是云环境共享的思路,代客户开通的云环境,实际是归属到了第三方平台腾讯云下,通过环境共享的模式提供给授权小程序使用。相对于第一版,环境可以集中管理,提供共享类saas服务就更利于集中管控和调配。但是对于环境的计费管理相对第一版会略微复杂。
但是无论哪种模式,对于这个小程序都不太合适。必须要通过第三方api完整的实现一套从授权小程序到代部署、代提交代码到代提审的完整管理流程,这个工作量还是相当不小。
放弃。
2 . 基于tcb cli和tcb framework进行小程序快速复制和部署
这也是这个小项目目前采用的方案。
tcb cli说明文档见:https://docs.cloudbase.net/cli-v1/intro.html#shi-yong
tcb cli 其实就是是云开发(Tencent CloudBase,TCB)开源的命令行界面交互工具,用于帮助用户快速、方便的部署项目,管理云开发资源。
tcb framework说明文档见: https://docs.cloudbase.net/framework/
至于tcb framework,则是基于tcb cli的一套类似扩展框架,依然也是云开发官方出品的云原生一体化部署工具,可以帮助开发者将静态网站、后端服务和小程序等应用,一键部署到云开发 Serverless 架构的云平台上,自动伸缩且无需关心运维,聚焦应用本身,无需关心底层配置和资源。
基于这二者工具,我们有这些基本能力,当然,还有更多:
- 初始化应用
- 使用framework云数据库插件,创建集合、设置集合权限、索引等
- 使用framework登陆权限插件,设置云环境权限
- 使用framewrok云函数插件,提交、部署云函数
- 使用framewrok小程序插件,预览、上传小程序
- 借助 tcb fn invoke命令,手动运行已部署云函数,执行一些必要的操作,如:数据清洗等
至此,一套完整的cli部署框架基本可以定型了,我需要:
- 初始化应用,设置环境权限(理论上权限可以通盘用用户登录才可访问,但是一些特殊情况,譬如朋友圈分享,是无法在落地页中执行login的,所以的考虑匿名访问环境的场景)
- 初始化数据库集合,初始化必要数据。如果版本升级,需要新的预置数据,则需要考虑db migrate
- 自动部署云函数
- 自动部署小程序
撸起袖子,说干就干。掏出熟悉的golang来写cli,当然这里也可以使用node来写,配合 commander.js 或者inquireUi.js 做交互式的命令行Cli效果都不错。
对于用户,他只需要提供appid、环境id、小程序上传秘钥,其他的一概可以不用考虑了。
最终效果如图:
a. 选择客户,生成必要配置信息
b. 选择部署模式
c. 熟悉的tcb命令行部署
还等什么,去泡上一杯老干部专属养生枸杞茶,静待部署成功交付吧。
当然,tcb cli和tcbf也有其自身的局限性,譬如一些配置的缺失,譬如对微信链路独有的openapi的支持,这些也都亟待解决。然而,其基于命令行的调用模式也提供了无限可能和想象空间。譬如可以集成到自动化ci工具中,譬如可以结合github actions来玩一些骚操作。
这些,就留待各位看官自行挖掘了。
最后,这套部署系统总得有个响亮的名字吧。
唔,云开发小程序自动部署系统,Tencent Miniprogram Deploy system。
好吧,就叫它:
TMD