写点什么

基于 Gitee Go 的函数代码更新与版本发布

作者:刘宇
  • 2021 年 12 月 15 日
  • 本文字数:2269 字

    阅读完需:约 7 分钟

基于Gitee Go的函数代码更新与版本发布

在之前的文章中,介绍了如何通过 Github + Github Action 进行单纯的代码更新以及版本发布,这一部分将会分享如何通过 Gitee + Gitee Go 实现:


  1. 单纯更新函数代码

  2. 进行版本发布

实践前准备

首先,我们在开始正式实践之前,我们要做几个事情:


  1. 安装 Serverless 开发者工具

  2. 部署一个函数到线上

安装 Serverless 开发者工具

通过 npm 包管理安装:适用于已经预装了 npm 的 Windows、Mac、Linux 平台。在 Windows、Mac、Linux 平台执行以下命令安装 Serverless Devs Tool 工具。


$ npm install @serverless-devs/s -g
复制代码


或者 通过 yarn 进行安装


$ 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

部署一个函数到线上

  1. 在本地初始化一个基于 nodejs 运行时的 koa 项目


s init nodejs-koa
复制代码


初始化的时候会让我们填写相关内容,例如项目目录,选择密钥等:



如何配置阿里云密钥信息,可以参考:http://www.serverless-devs.com/docs/provider-config/alibabacloud


  1. 进入到项目目录,并进行部署操作:



稍等片刻,即可看到项目已经完成部署:



我们打开项目页面:



至此,我们的准备环节完成。

基于 Gitee 的 CD 能力建设

在这一步,我们需要做几个事情:


  1. 有一个 Gitee 仓库

  2. 在仓库中 push 我们的代码

  3. 配置环境变量

  4. 开启 Gitee Go

  5. 更新代码


创建一个 Gitee 仓库:



push 代码到仓库



推送后:



配置环境变量


此时,我们将阿里云的密钥等信息配置到环境变量:



例如配置:



配置后的效果:



此时开启 Gitee Go:



然后:



点击创建流水线,并输入流水线内容:



流水线文件名:deploy.yml


流水线配置:


name: koa-cicddisplayName: 'KOA自动部署流水线'triggers:                                  # 流水线触发器配置  push:                                    # 设置 master 分支 在产生代码 push 时精确触发(PRECISE)构建    - matchType: PRECISE      branch: mastercommitMessage: ''                          # 通过匹配当前提交的 CommitMessage 决定是否执行流水线stages:                                    # 构建阶段配置  - stage:                                 # 定义一个 ID 标识为 deploy-stage ,名为「 Deploy Stage 」的阶段      name: deploy-stage      displayName: 'Deploy Stage'      failFast: false                      # 允许快速失败,即当 Stage 中有任务失败时,直接结束整个 Stage
steps: # 构建步骤配置 - step: npmbuild@1 # 采用 npm 编译环境 name: deploy-step # 定义一个 ID 标识为 deploy-step ,名为「 Deploy Step 」的阶段 displayName: 'Deploy Step' inputs: # 构建输入参数设定 nodeVersion: 14.15 # 指定 node 环境版本为 14.15 goals: | # 安装依赖,配置相关主题、部署参数并发布部署 node -v npm -v npm install -g @serverless-devs/s s config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default cd src && npm install s cli fc-api updateFunction --region cn-hangzhou --serviceName koademo --functionName http-trigger-function --code '{"zipFile":"./"}' s cli fc-api publishVersion --region cn-hangzhou --serviceName koademo
复制代码


其实核心部分只有 5 句话:


npm install -g @serverless-devs/ss config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a defaultcd src && npm installs cli fc-api updateFunction --region cn-hangzhou --serviceName koademo --functionName http-trigger-function --code '{"zipFile":"./"}'s cli fc-api publishVersion --region cn-hangzhou --serviceName koademo
复制代码


  1. npm install -g @serverless-devs/s: 安装 Serverless Devs 工具

  2. s config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default: 根据刚才配置的环境变量,取环境变量内容配置密钥

  3. cd src && npm install: 进入 src 目录,并安装依赖

  4. s cli fc-api updateFunction --region cn-hangzhou --serviceName koademo --functionName http-trigger-function --code '{"zipFile":"./src/"}' : 更新函数代码

  5. s cli fc-api publishVersion --region cn-hangzhou --serviceName koademo : 发布函数版本


此时,我们可以对 Index.js 内容进行更改:



然后保存,稍等片刻,可以在流水线中看到这个发布流程:



此时,我们可以点到流程中查看详情:



稍等片刻,可以看到 CD 流程完成:



完成之后,我们可以点击查看线上的代码:


案例总结

基于 Serverless 架构进行项目开发,与 CI/CD 的集成,搞定自动化发布等是必不可少的“课程”,希望通过本文,读者可以对相关的流程有进一步的思路,可以应用到自己的项目中。

发布于: 4 小时前阅读数: 4
用户头像

刘宇

关注

阿里云Serverless云布道师 2020.01.04 加入

阿里云Serverless产品经理,国防科大在读博士,《Serverless架构》、《Serverless实践》、《人人都能学会的Serverless架构》等书籍作者,Serverless Devs发起人,Anycodes在线编程负责人。

评论

发布
暂无评论
基于Gitee Go的函数代码更新与版本发布