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、调试没问题,然后再推送到云端验证效果
相关推荐
Mintopia16 分钟前
🌀曲面细分求交:在无限细节中捕捉交点的浪漫
前端·javascript·计算机图形学
Mintopia19 分钟前
🧙‍♂️用 Three.js 判断一个点是否在圆内 —— 一次圆心和点的对话
前端·javascript·three.js
liliangcsdn34 分钟前
mac mlx大模型框架的安装和使用
java·前端·人工智能·python·macos
CssHero37 分钟前
基于vue3完成领域模型架构建设
前端
PanZonghui40 分钟前
用项目说话:我的React博客构建成果与经验复盘
前端·react.js·typescript
言兴44 分钟前
教你如何理解useContext加上useReducer
前端·javascript·面试
sunbyte1 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | GoodCheapFast(Good - Cheap - Fast三选二开关)
前端·javascript·css·vue.js·tailwindcss
前端的日常1 小时前
网页视频录制新技巧,代码实现超简单!
前端
前端的日常1 小时前
什么是 TypeScript 中的泛型?请给出一个使用泛型的示例。
前端
今禾1 小时前
一行代码引发的血案:new Array(5) 到底发生了什么?
前端·javascript·算法