Serverless 基础篇系列文章 —— Serverless Framework的入门到实战

Serverless Framework的入门到实战

一、云函数和serverless的区别

通过前面小章节的介绍,我们认识到了云函数和serverless,但是可能会有一个很迷惑云函数和serverless到底有什么区别,他们之间有什么联系,为什么我在创建云函数的时候选择模板方式创建最后创建的是serverless,而不是云函数呢。下面我们将解答云函数和serverless的区别

  • 1、Serverless FrameworkServerless公司推出的一个开源的 Serverless 应用开发框架。

  • 2、Serverless Framework是由 Serverless Framework PluginServerless Framework Components 组成。

  • 3、Serverless Framework Plugin 实际上是一个函数的管理工具,使用这个工具,可以很轻松的部署函数、删除函数、触发函数、查看函数信息、查看函数日志、回滚函数、查看函数数据 等。简单的概括就是serverless其实就云函数的集合体,使用serverless后我们创建的云函数不需要手动去创建触发器等操作。

  • 4、官方地址

二、Serverless Framework 应用场景

上面既然介绍了云函数和serverless的区别,现在我们介绍下什么场景下需要使用serverless,而不是使用云函数,其实在实际开发过程中,我们都是使用serverless而不去使用云函数,毕竟云函数的使用场景受限,或者说比较基础。打一个简单的比方,在写js操作dom的时候,你会选择用原生js还是会使用jquery一样的比喻。

  • 1、基于云函数的命令行开发工具

    通过 Serverless Framework,开发者可以在命令行完成函数的开发、部署、调试。还可以结合前端服务、 API 网关、数据库等其它云上资源,实现全栈应用的快速部署。

  • 2、传统应用框架的快速迁移

    Serverless Framework 提供了一套通用的框架迁移方案,通过使用 Serverless Framework 提供的框架组件(Egg/Koa/Express 等,更多的框架支持可以参考),原有应用仅需几行代码简单改造, 即可快速迁移到函数平台。同时支持命令行与控制台的开发方式。

三、创建serverless的方式

1、在腾讯serverless控制面板上创建,然后在vscode中使用插件的方式下载到本地注意 编辑器上要选择和创建serverless地区相同,才能看到项目,否则是看不到项目代码的】

2、使用客户端cli命令方式创建,个人也更推荐使用这种方式创建,修改代码,然后部署到后台(这里说的后台是,腾讯云服务上)

3、下面介绍使用客户端的cli的方式创建一个express模板项目,然后部署到服务器上,然后对项目的简单修改,在浏览器上访问:

(1)在空目录下使用命令

properties 复制代码
serverless

(2)选择模板并且命名项目,当项目创建完后会提示你是否要部署到云端,如果选择Y会将代码上传并且部署,如果选择N就直接退出

(3)如果选择要部署到云端会出现登录的二维码和url地址,如果电脑屏幕从黑窗口中扫描不方便可以选择复制url到浏览器上登录

(4)第一次部署会比较慢,因为要上传node_module文件夹,当部署成功后会出现一些提示信息

a. 可以复制访问地址到浏览器上查看部署的项目效果

b. 也可以复制应用控制图的地址到浏览器上查看部署项目的具体信息

(5) 本地用编辑器打开项目修改然后继续推送到云端

如果你想要推送到云端的速度更快,可以修改serverless.yml文件。有点类似.gitignore文件的功能,不提交到git这里仅仅是不推送到云端。

使用命令推送至云端

properties 复制代码
serverless deploy

有的同学会问了,为什么第二次推送到云端不需要扫码登录?这是因为第一次扫码登录,会在项目文件夹下创建一个.env的文件,里面存储了登录的相关信息

  • 4、如果加上了排除node_modules包上传的命令,当部署成功后,不出意外的话,你访问是会提示包不存在错误,如下图
  • 5、处理的方式有两种

    • 1、是不修改serverless.yml文件,将node_modules文件上传,上传时间会久点而已

    • 2、在serverless中开启自动拉取包的功能

点击开启自动安装依赖包,然后点击部署,再次访问又可以了

四、本地调试项目

上面我们改完代码就部署项目到云端(推送代码到云端就是部署),有点类似我们现在的模式中,我们不可能每次改完代码都到jenkins发布下,然后看效果,这样大大降低了我们开发效率,我们要在本地运行没问题,然后将运行没问题的代码推送到云端,在真实的开发场景中,应该是你连推送到云端的权限都没有,你仅仅是本地开发业务代码,然后提交到git仓库中,你们的leader拉取你的代码,然后统一推送到云端,推送到云端就相当于项目部署一次。下面介绍,如何在本地调试express项目

  • 1、在项目的根目录下创建一个app.js文件

    javascript 复制代码
    const app = require('./sls');
    const PORT = 3000;
    
    app.listen(PORT, () => {
      console.log(`服务已经启动: http://localhost:${PORT}`);
    });
  • 2、本地使用node或者nodemon来启动app.js文件,就可以在本地调试代码

  • 3、调试没问题,然后再推送到云端验证效果
相关推荐
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
ew452182 小时前
ElementUI表格表头自定义添加checkbox,点击选中样式不生效
前端·javascript·elementui
suibian52352 小时前
AI时代:前端开发的职业发展路径拓宽
前端·人工智能
Moon.92 小时前
el-table的hasChildren不生效?子级没数据还显示箭头号?树形数据无法展开和收缩
前端·vue.js·html
垚垚 Securify 前沿站2 小时前
深入了解 AppScan 工具的使用:筑牢 Web 应用安全防线
运维·前端·网络·安全·web安全·系统安全
工业甲酰苯胺5 小时前
Vue3 基础概念与环境搭建
前端·javascript·vue.js
mosquito_lover16 小时前
怎么把pyqt界面做的像web一样漂亮
前端·python·pyqt
柴柴的小记9 小时前
前端vue引入特殊字体不生效
前端·javascript·vue.js
柠檬豆腐脑9 小时前
从前端到全栈:新闻管理系统及多个应用端展示
前端·全栈
bin91539 小时前
DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)
前端·javascript·vue.js·ecmascript·deepseek