前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用 Serverless 搭建 Mock Server

如何用 Serverless 搭建 Mock Server

作者头像
腾讯云serverless团队
发布2022-01-20 12:40:06
8770
发布2022-01-20 12:40:06
举报

前言

什么是 Serverless

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

什么是 Mock Server

现在的业务系统很少有孤立存在的,它们或多或少需要使用或依赖其他服务,这给我们的联调和测试造成了麻烦。为了应对这种情况,我们常会搭建一个临时的 server,模拟那些服务,提供模拟数据进行联调和测试。这个临时的 server 就是 mock server。因此 mock server通常具有以下特点:

  1. 快速搭建、无需写代码
  2. 能模拟任何数据
  3. 低成本
  4. 简单配置

也正是这些特点,均符合 serverless 的特点,因此我们使用 serverless 来做这件事情再合适不过了。接下来我们就用腾讯云的云函数为例,来讲解一下如何快速搭建 Mock Server。

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

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

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

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

  • 准备工作

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

其次需要自己准备一个定义 response 的 JSON 文件,如下。里面的内容需要根据自己的业务去定义要返回的 mock 数据是什么。

代码语言:javascript
复制
[
  {
    "response" :
      {
        "text" : "Hello, Moco"
      }
  }
]

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

代码语言:javascript
复制
#!/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 还可以做很多类似的事情,因为它的高性能、自动伸缩、按量计费等特性,让它成为了很多解决方案中的性价比首选。

未来我会继续探索 serverless 的更多实用的场景,在「腾讯云云函数」公众号与大家分享。

One More Thing


扫码添加小助手,加入 Serverless 用户福利群

  • 云函数官网:https://cloud.tencent.com/product/scf?from=15939
  • 事件总线官网:https://cloud.tencent.com/product/eb?from=15940

点击「阅读原文」 ,查看更多最佳实践。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ServerlessCloudNative 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 什么是 Serverless
      • 什么是 Mock Server
      • 如何用云函数快速搭建 Mock Server
      • 用 Serverless 搭建 Mock Server 的优势
      • 最后
      相关产品与服务
      云函数
      云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档