1

如何用Serverless搭建Mock server

 2 years ago
source link: https://segmentfault.com/a/1190000041300709
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如何用Serverless搭建Mock server

什么是Serverless

无服务器Serverless是一种云原生开发模型,可使开发人员专注构建和运行应用,而无需管理服务器。

云函数(Serverless Cloud Function,SCF)则是腾讯云提供的无服务器执行环境,可以在无需购买和管理服务器的情况下运行代码。

什么是Mock Server

现在的业务系统很少有孤立存在的,它们或多或少需要使用或依赖其他服务,这给我们的联调和测试造成了麻烦。

为了应对这种情况,我们常会搭建一个临时的server,模拟那些服务,提供模拟数据进行联调和测试。

这个临时的server就是 mock server 。

因此mock server通常具有以下特点:

  1. 快速搭建、无需写代码
  2. 能模拟任何数据

也正是这些特点,均符合serverless的特点,因此我们使用serverless来做这件事情再合适不过了。

接下来我们就用腾讯云的云函数为例,来讲解一下如何快速搭建Mock Server。

如何用云函数快速搭建Mock Server

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

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

Moco是一个开源框架,这是它的Github链接

首先去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文件,如下图。
截屏2021-12-29 16.58.53.png

部署Mock Server

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

  • 选择从头开始
  • 选择Web函数
  • 运行环境选择Java8
  • 在函数代码那里上传刚才打包好的zip文件
    Untitled.png

最后,点击完成即可。

然后,你到函数管理界面就可以看到访问路径了。如下图。

向URL发送HTTP请求就能获得你在JSON文件中定义的response。
1.png

上面的方式是不是已经很快捷了。但是还有更快的,没有错!

Mock server已经上架到云函数的官方模版中了。

如下图,在模版中搜索mock就可以看到,一键就可以部署一个Mock server了。
34.png

用Serverless搭建Mock Server的优势

用Serverless搭建Mock Server具有下面几个优势。

所有开发团队都希望只花极少的时间就能快速搭建一个Mock Server。

因此使用Serverless不用关注和维护服务器,所以可以快速搭建运行一个mock server。

由于Mock server只用于测试,如果我们购买服务器来搭建,会增加不少金钱成本和维护成本。

而Serverless按量收费和免运维的特点,则可以既节约了金钱成本,又节约了维护成本。

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

我们不需要像管理服务器那样需要去配置端口、防火墙等。

只需要上传mock server就结束了。

Serverless还可以做很多类似的事情,因为它的高性能、自动伸缩、按量计费等特性,让它成为了很多解决方案中的性价比首选。

未来我会继续探索serverless的更多实用的场景与大家分享。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK