云开发还可以这么玩系列之二----小手一点,一键部署!
发布于 3 年前 作者 qiangyi 4228 次浏览 来自 分享

首先回顾一下上期的分享

云开发还可以这么玩!从红包外卖券薅羊毛说起…

其中聊到了如何使用 tcb cli 及tcb framework,并对其进行扩展,以更高效、更便捷的进行项目的切换及部署。

今日偶逛社区,意外发现有同学提出了这样一个问题:

小程序云开发的环境切换,如何快速把云函数、存储导入到新环境?

看到这个帖子,我不禁又陷入了沉思:

仔细看看,其实需求的解决方案在上期的分享中已经阐述的很清楚了。难道我的帖子没人看?难道我的SEO做的不够好?

然而,回头再思考一下,通过修改配置文件、扩展cli命令的方式,其实并不是一种特别友好的方式。一是有一定的开发门槛,二是对操作人员,黑气吗黑的命令行也不是人见人爱…

那么有没有一种方案既能做到配置简单,又对想要快速部署的新手甚至一窍不懂的小白友好呢?

答案是肯定的。

来,首先快速体验一下快速部署的魅力!

这是一个简单的博客小程序,基本的分类、文章、检索、浏览。

简陋,但是五脏俱全。

你也想快速拥有并部署一个?没问题,请做以下准备工作:

1 一个开通了云开发并创建了云环境的小程序,复制他的appId备用;

2 小程序后台,开发管理-开发设置-小程序上传管理中,生成小程序上传密钥,下载密钥文件备用,同时关闭代码上传ip保护;

接下来,点击下方按钮,按照步骤进行(请在pc浏览器下进行此操作,移动端体验并不好):

选择云环境:

输入小程序appid,访问链接上传密钥文件生成base64字符串,并填写:

点击“完成”,稍等片刻,等待构建部署完成,见证奇迹的时刻到了!

进入腾讯云控制台,云函数及db创建部署完成:

进入小程序管理后台,版本管理。会发现已经上传了小程序版本:

还等什么?扫码体验吧!

那么,这一切是怎么做到的?这个神奇的“部署到云开发”的按钮背后究竟隐藏着什么秘密?走进云开发即将为你揭晓…(跑题了)

有请今天的主角登场:

云开发一键部署按钮

正如一键部署的介绍中说:

一键部署按钮可以让公开的 Git 项目一键部署到云开发 CloudBase 上,大大简化用户部署的门槛,方便用户快速使用和体验应用。一键部署功能支持 Github,Gitlab,Coding,Gitee 等 Git 仓库地址。

一键部署其实就是在tcb framework的基础上,通过引入git项目,读取配置,从而能够快速的部署项目到云。

更多详细的,请大家参阅文档,有一个基础的认识。接下来针对此博客小程序来剖析一下详细的配置,相关git代码文末将放出。

1 DB插件配置:

部署的时候会自动生成分类(categories), 文章(articles),及数据库迁移记录(mirgates)三个集合,如果已存在,则会跳过创建;

2 云函数插件配置:

api是整个博客的云函数接口,migrate是每次deploy时候执行的db迁移脚本,方便进行数据初始化、数据清洗。

3 小程序部署插件配置:

简单易懂。唯一需要注意的是{{env.WX_APPID}}和{{env.WX_CI_KEY}}。

没错,这就是之前准备工作中提到的小程序appid和小程序上传密钥了。

这里用到的是模板变量的概念:模板变量

所谓模板变量,实际是通过读取项目下的.env, .env.local,或者是用户自定义的.env.xxx配置文件,注入变量到cloudbaserc中,这样就可以方便的进行模式切换。

同时,也可以通过framework配置中requirement的environment配置,在一键部署的时候,通过用户的输入注入到配置文件中,实现自定义:

4 framework的hook配置:

所谓hook,即是在部署前后执行的钩子动作,可以进行一些预编译,或者在部署完成后执行相关的云函数进行一些操作。

这里postdeploy在部署完成后执行了migrate云函数,进行了db数据的一些初始化工作,感兴趣的可以看一下源码。

至此,一个可以完美支持一键部署的云开发小程序就配置ok了,可以进行一键部署了。

看,是不是很方便?

tcb Framework及一键部署,想象的空间还有很多,当然也存在一定的局限性,优点缺点都有待各位看官去进一步挖掘了。

无论如何,值得你去用!

本项目源码见:https://github.com/yautah/cloudblog,欢迎指正、star、fork、pr,请勿用于商业用途,不然挖地三尺也要追则到底。

5 回复

两个画风独特的图看懂了。

举头三尺有神明

大佬威武,大部分看不懂,只看懂一点。

一键三连给大佬递茶

回到顶部