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、调试没问题,然后再推送到云端验证效果
相关推荐
丁总学Java14 分钟前
微信小程序-npm支持-如何使用npm包
前端·微信小程序·npm·node.js
懒羊羊大王呀24 分钟前
CSS——属性值计算
前端·css
无咎.lsy1 小时前
vue之vuex的使用及举例
前端·javascript·vue.js
fishmemory7sec1 小时前
Electron 主进程与渲染进程、预加载preload.js
前端·javascript·electron
fishmemory7sec1 小时前
Electron 使⽤ electron-builder 打包应用
前端·javascript·electron
豆豆2 小时前
为什么用PageAdmin CMS建设网站?
服务器·开发语言·前端·php·软件构建
twins35203 小时前
解决Vue应用中遇到路由刷新后出现 404 错误
前端·javascript·vue.js
qiyi.sky3 小时前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
煸橙干儿~~3 小时前
分析JS Crash(进程崩溃)
java·前端·javascript
安冬的码畜日常3 小时前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺