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

Serverless Framework的入门到实战

一、云函数和serverless的区别

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

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

  • 2、Serverless Framework是由 Serverless Framework Plugin 和 Serverless 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、调试没问题,然后再推送到云端验证效果
相关推荐
LucianaiB8 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
excel8 小时前
JavaScript 对象池:减少高频对象创建与 GC 压力
前端
陈随易10 小时前
纯 Go 写的 JS 引擎,跑分超过了 C 语言的 QuickJS
前端·后端·程序员
子兮曰11 小时前
Chrome 权限元素实战:144 与 151 的渐进增强写法
前端·javascript·chrome
IT_陈寒11 小时前
Redis连接池泄漏那次,我差点把生产环境搞崩了
前端·人工智能·后端
强尼银手11 小时前
我花一天做了个格斗游戏原型,判定全对,然后被「美术」劝退了
前端·javascript
石小石Orz12 小时前
AI 正在蚕食我们的编码能力
前端·后端·算法
陈随易12 小时前
专注飞机 FocusFlight,两个人把番茄钟做成了一趟航班
前端·后端·程序员
总要学点什么13 小时前
第98篇:三维特效-材质线效果——给一条线换十种材质,虚线的图案只填了一半
开发语言·前端·javascript·ecmascript·gis·webgl·材质
10share13 小时前
基于大模型的 i18n 方案:把中文原文当 Key,轻松搞定多语言维护
前端·vue.js