通过Gitee+Serverless Devs快速实现函数代码更新与版本发布
目录
在上一篇文章中,我们介绍了如何通过Github + Github Action进行单纯的代码更新以及版本发布,在本篇文章中,将会分享如何通过Gitee + Gitee Go实现:
- 单纯更新函数代码
- 进行版本发布
实践准备
首先,我们在开始正式实践之前,我们要做几个事情:
- 安装Serverless开发者工具
- 部署一个函数到线上
安装Serverless开发者工具
通过 npm 包管理安装:适用于已经预装了 npm 的 Windows、Mac、Linux 平台。在 Windows、Mac、Linux 平台执行以下命令安装 Serverless Devs Tool工具。
1 | npm install @serverless-devs/s -g |
或者 通过 yarn 进行安装
1 | yarn global add @serverless-devs/s |
说明:
- 如果在 Linux 或 MacOS 下执行该命令报错且报错信息为
未找到命令
,请执行命令ln -s serverless-devs安装位置 /usr/bin
,serverless-devs安装位置可以通过find / -name s
查找。- 如果在 Linxu 下执行该命令报错且报错信息为
Error: EACCES: permission denied
,请执行命令sudo npm install @serverless-devs/s -g
。- 如果安装过程较慢,可以考虑使用淘宝 npm 源,安装命令为
npm --registry=https://registry.npm.taobao.org install @serverless-devs/s -g
。
部署一个函数到线上
- 在本地初始化一个基于nodejs运行时的koa项目
1 | s init nodejs-koa |
初始化的时候会让我们填写相关内容,例如项目目录,选择密钥等:
如何配置阿里云密钥信息,可以参考:http://www.serverless-devs.com/docs/provider-config/alibabacloud
- 进入到项目目录,并进行部署操作:
稍等片刻,即可看到项目已经完成部署:
我们打开项目页面:
至此,我们的准备环节完成。
基于Gitee的CD能力建设
在这一步,我们需要做几个事情:
- 有一个Gitee仓库
- 在仓库中push我们的代码
- 配置环境变量
- 开启Gitee Go
- 更新代码
Gitee仓库的准备
创建一个Gitee仓库:
push代码到仓库
推送后:
配置环境变量
此时,我们将阿里云的密钥等信息配置到环境变量:
例如配置:
配置后的效果:
开启Gitee Go
此时开启Gitee Go:
然后:
点击创建流水线,并输入流水线内容:
流水线文件名:deploy.yml
流水线配置:
1 | name: koa-cicd |
其实核心部分只有5句话:
1 | npm install -g @serverless-devs/s |
npm install -g @serverless-devs/s
: 安装Serverless Devs工具s config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default
: 根据刚才配置的环境变量,取环境变量内容配置密钥cd src && npm install
: 进入src目录,并安装依赖s cli fc-api updateFunction --region cn-hangzhou --serviceName koademo --functionName http-trigger-function --code '{"zipFile":"./src/"}'
: 更新函数代码s cli fc-api publishVersion --region cn-hangzhou --serviceName koademo
: 发布函数版本
更新代码
此时,我们可以对Index.js内容进行更改:
然后保存,稍等片刻,可以在流水线中看到这个发布流程:
此时,我们可以点到流程中查看详情:
稍等片刻,可以看到CD流程完成:
完成之后,我们可以点击查看线上的代码:
总结
基于Serverless架构进行项目开发,与CI/CD的集成,搞定自动化发布等是必不可少的“课程”,希望通过本文,读者可以对相关的流程有进一步的思路,可以应用到自己的项目中。
欢迎您关注我的博客,也欢迎转载该博客,转载请注明本文地址: http://bluo.cn/gitee-gitee-go-serverless-devs-ci-cd/ 。有关于Serverless等相关问题欢迎联系我:80902630
微信号 | 抖音号 |