一、概念解析
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/
,是不是简单粗暴~
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...