如何用Serverless搭建Mock Server?

云加社区

共 2118字,需浏览 5分钟

 ·

2022-01-22 22:11


引言


(一)什么是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


(一)准备工作


首先去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/product/scf?from=15939
事件总线官网:
https://cloud.tencent.com/product/eb?from=15940


 推荐阅读


超实用教程!一探Golang怎样践行Clean Architecture?

高并发场景下,6种方案,保证缓存和数据库的最终一致性!

颠覆Kafka的统治,新一代云原生消息系统Pulsar震撼来袭!

七年激荡!Serverless的下一站将去往何方?



👇「阅读原文」查看更多云函数最佳实践!

浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报