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、调试没问题,然后再推送到云端验证效果
相关推荐
腾讯TNTWeb前端团队6 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰9 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪9 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪9 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy10 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom11 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom11 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom11 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom11 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom11 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试