前言什么是ServerlessServerless是一种云原生开发模式,可以让开发者专注于构建和运行应用程序,而无需管理服务器。云函数(ServerlessCloudFunction,SCF)是腾讯云提供的无服务器执行环境,无需购买和管理服务器即可运行代码。什么是模拟服务器?今天的业务系统很少孤立存在。他们或多或少需要使用或依赖其他服务,给我们的联调测试带来了麻烦。为了应对这种情况,我们往往会搭建一个临时服务器,模拟那些服务,提供模拟数据进行联调测试。这个临时服务器是模拟服务器。因此,模拟服务器通常具有以下特点:构建速度快、成本低、配置简单,无需编写代码即可模拟任何数据。这些特点也很符合serverless的特点,所以非常适合我们用serverless来做这件事情。下面我们以腾讯云的云函数为例,讲解如何快速搭建MockServer。如何使用云功能快速搭建mockserver市面上的mockserver工具有很多,有开源的,也有非开源的。这里我们以Moco为例,教大家快速部署一个MockServer。Moco是一个开源框架,这里是它的Github链接。准备工作首先去Moco的github页面下载准备好的jar文件。其次,您需要准备一个定义响应的JSON文件,如下所示。里面的内容需要根据自己的业务定义返回的mock数据是什么。[{"response":{"text":"Hello,Moco"}}]最后需要一个启动文件才能在云函数中运行。文件名必须是scf_bootstrap,内容如下:#!/bin/bash/var/lang/java8/bin/java-jarmoco-runner-1.2.0-standalone.jarhttp-p9000-cfoo.json端口号必须是9000,如果json配置文件名不是foo.json,需要改成自己的文件名。然后将这三个文件打包成一个zip文件,如下图。部署MockServer,打开云函数控制台,新建一个云函数。如下所示。选择从头开始选择Web函数运行环境选择Java8上传函数代码中刚刚打包好的zip文件。最后,单击完成。然后进入功能管理界面就可以看到访问路径了。如下所示。向URL发送HTTP请求以获取您在JSON文件中定义的响应。上面这种一键部署的方式是不是很快?但是还有更快的,别搞错了!CloudFunctions官方模板中添加了模拟服务器。如下图,在模板中搜索mock,可以看到可以一键部署mock服务器。使用Serverless构建MockServer的优点使用Serverless构建MockServer具有以下优点。快速搭建所有开发团队都希望在极短的时间内快速搭建一个MockServer。因此,使用Serverless不需要关注和维护服务器,因此可以快速构建并运行模拟服务器。极低的成本由于模拟服务器只是用于测试,如果我们购买服务器来搭建它,将会增加大量的资金和维护成本。Serverless收费、免运维的特点,可以节省资金成本和维护成本。通常我们调用MockServer的次数很少,而云函数是按调用次数收费的,每月有10万次免费调用。所以你可以免费使用云函数。无需运维我们不需要像管理服务器一样配置端口、防火墙等。只需上传模拟服务器即可。最后,Serverless可以做很多类似的事情,因为它的高性能、自动伸缩和按需付费等特性,使其成为许多解决方案中高性价比方案的首选。后续我会继续探索更多serverless的实用场景分享给大家。
