一、概念解析
1. Serverless 是什么?
Serverless 架构即“无服务器”架构,它是一种全新的架构形式,是云计算时代一种革命性的架构模式。
Serverless 的核心思想是让作为计算资源的服务器不再成为用户所关注的一种资源。
FaaS(Functions as a Service)函数即服务,FaaS 是 Serverless 计算的一种模式,本文讲到的就是这种模式。
呵,看完还是云里雾里对不对,冇嘢冇嘢接着看。
2. Eoapi 是什么?
一个可拓展的开源 API 工具,就是结尾的那个配图,能够用它疾速调试 API,能够体验一下 Demo 地址。
3. Vercel 是什么?
Vercel 是一个站点托管平台,相似于 Github Pages,你丢网页的构建后代码下来,还你一个 Web 服务链接,同时反对继续集成,能够关联 Push、PR,提交代码后主动部署
二、疾速开始
1. Fork Eoapi 仓库
拜访:https://github.com/eolinker/e…
Fork 胜利后能够在本人的 Repositories 看到 Eoapi。
2. 配置 Vercel
拜访:https://vercel.com/
注册胜利后点击新建我的项目
配置 Vercel 拜访 Github 我的项目的权限,选中 Eoapi
配置装置、构建命令以及构建后文件夹,配置好之后点击构建按钮。
- BUILD COMMAND:
cd src/workbench/browser&&npm run build:web
- OUTPUT DIRECTORY:
src/workbench/browser/dist
- INSTALL COMMAND:
npm install&&cd src/workbench/browser&&npm install
通过这个链接就能够拜访你的专属 API 工具啦!
三、Serverless Funcions
1. 代码
api 文件夹下有一个名为 unit.js
的文件,当咱们部署到服务器时,它就变成了一个 HTTP 接口,一个文件一个接口,接口地址就是 api/<file_name>
,是不是简略粗犷~
Serverless Functions 让咱们写接口和写纯函数一样简略
咱们只须要 exports 一个纯函数,通过函数第一个入参 req 拿到申请体,再通过第二个入参 res.end() 返回响应体,就能够疾速公布一个 API。
let _LibsFlowCommon = require('../src/workbench/node/request/unit.js');
let _LibsCommon = require('../src/workbench/node/request/libs/common.js');
module.exports = (req, res) => {console.log('unit.js', req.body);
try {
let data = req.body.data;
data.env = _LibsCommon.parseEnv(data.env);
new _LibsFlowCommon.core().main(data, (tmpInputReport, tmpInputHistory) => {
res.end(JSON.stringify('i am response')
);
});
} catch (e) {console.error('unit.js', e, req.body);
}
};
2. 如何本地调试
Vercel 官网提供了 cli 工具
npm i -g vercel
vercel dev
剩下的跟着命令行指引配置完后就能够在本地调试 Serverless Functions 了
四、作者的话
我是 Eoapi 的一名开发者,Live Demo 就是应用下面的步骤配置进去的,如果大家对我的项目感兴趣,欢送大家继续关注咱们我的项目:https://github.com/eolinker/e…。
说实话我第一次配置 Vercel 的时候还是踩了不少坑,但总体来说体验还是很不错的。
我手头上所有的网站基本上都迁徙到了 Vercel。除了 Eoapi,我还部署了我的官网、一个抽奖程序,很酷炫。
嘿嘿,你也能够部署试试看,作为测验本人是否把握知识点的小作业。
Github 地址:https://github.com/moshang-xc…
五、参考资料
- Serverless(无服务) 基础知识 – 掘金
- 三分钟理解 Serverless 是什么
- https://segmentfault.com/a/11…
- 什么是 Serverless 架构和 FaaS 函数即服务?
- Download Vercel CLI – Vercel
- https://vercel.com/docs/conce…