关于后端:如何用Serverless搭建Mock-Server

34次阅读

共计 1757 个字符,预计需要花费 5 分钟才能阅读完成。

引言

(一)什么是 Serverless

无服务器 Serverless 是一种云原生开发模型,可使开发人员专一构建和运行利用,而无需治理服务器。云函数(Serverless Cloud Function,SCF)则是腾讯云提供的无服务器执行环境,能够在无需购买和治理服务器的状况下运行代码。

(二)什么是 Mock Server

当初的业务零碎很少有孤立存在的,它们或多或少须要应用或依赖其余服务,这给咱们的联调和测试造成了麻烦。为了应答这种状况,咱们常会搭建一个长期的 server,模仿那些服务,提供模仿数据进行联调和测试。这个长期的 server 就是 mock server。因而 mock server 通常具备以下特点:

  • 疾速搭建、无需写代码
  • 能模仿任何数据
  • 低成本
  • 简略配置

也正是这些特点,均合乎 serverless 的特点,因而咱们应用 serverless 来做这件事件再适合不过了。接下来咱们就用腾讯云的云函数为例,来解说一下如何疾速搭建 Mock Server。

一、如何用云函数疾速搭建 Mock Server

目前市面上有很多 Mock server 工具,开源的不开源的都有。

这里就用 Moco 作为例子来教大家疾速部署一个 Mock Server。

Moco 是一个开源框架,Github 链接:https://github.com/dreamhead/…

(一)筹备工作

首先去 Moco 的 github 页面下载筹备好的 jar 文件。

其次须要本人筹备一个定义 response 的 JSON 文件,如下。外面的内容须要依据本人的业务去定义要返回的 mock 数据是什么。


[
  {
    "response" :
      {"text" : "Hello, Moco"}
  }
]

最初在云函数中运行须要一个启动文件,文件名必须是 scf_bootstrap,内容如下:

#!/bin/bash
/var/lang/java8/bin/java -jar moco-runner-1.2.0-standalone.jar http -p 9000 -c foo.json

其中端口号必须是 9000,JSON 配置文件名如果不是 foo.json 则须要改成本人的文件名。

而后把这个三个文件打包成一个 zip 文件,如下图。

(二)部署 Mock Server

关上云函数的控制台,新建一个云函数。如下图。

  • 抉择自定义创立
  • 抉择 Web 函数
  • 运行环境抉择 Java8
  • 在函数代码那里上传方才打包好的 zip 文件

最初,点击实现即可。

而后,你到函数治理界面就能够看到拜访门路了。如下图,向 URL 发送 HTTP 申请就能取得你在 JSON 文件中定义的 response。

(三)一键部署

下面的形式是不是曾经很快捷了。然而还有更快的,没错!mock server 曾经上架到云函数的官网模版中了。如下图,在模版中搜寻 mock 就能够看到,一键就能够部署一个 Mock server 了。

留神:模版部署的 mock server 自带一个默认的 response json 文件,大家能够通过下载已部署的代码包,替换外面的 json 文件成本人的,而后重新部署。具体步骤能够参考模版源码中的 readme。

二、用 Serverless 搭建 Mock Server 的劣势

用 Serverless 搭建 Mock Server 具备上面几个劣势:

(一)疾速搭建

所有开发团队都心愿只花极少的工夫就能疾速搭建一个 Mock Server。因而应用 Serverless 不必关注和保护服务器,所以能够疾速搭建运行一个 mock server。

(二)极低成本

因为 Mock server 只用于测试,如果咱们购买服务器来搭建,会减少不少金钱老本和保护老本。

而 Serverless 按量免费和免运维的特点,则能够既节约了金钱老本,又节约了保护老本。

通常咱们调用 Mock Server 的次数都很少,而云函数是按调用次数免费的,每个月有 10 万次收费调用次数。所以应用云函数则能够收费薅羊毛。

(三)无需运维

咱们不须要像治理服务器那样须要去配置端口、防火墙等。只须要上传 mock server 就完结了。

三、结语

Serverless 还能够做很多相似的事件,因为它的高性能、主动伸缩、按量计费等个性,让它成为了很多解决方案中的性价比首选。

云函数官网:https://cloud.tencent.com/pro…
事件总线官网:https://cloud.tencent.com/pro…

正文完
 0