<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何用Serverless搭建Mock Server?

          共 2118字,需瀏覽 5分鐘

           ·

          2022-01-22 22:11


          引言


          (一)什么是Serverless


          無服務(wù)器Serverless是一種云原生開發(fā)模型,可使開發(fā)人員專注構(gòu)建和運(yùn)行應(yīng)用,而無需管理服務(wù)器。云函數(shù)(Serverless Cloud Function,SCF)則是騰訊云提供的無服務(wù)器執(zhí)行環(huán)境,可以在無需購買和管理服務(wù)器的情況下運(yùn)行代碼。



          (二)什么是Mock Server


          現(xiàn)在的業(yè)務(wù)系統(tǒng)很少有孤立存在的,它們或多或少需要使用或依賴其他服務(wù),這給我們的聯(lián)調(diào)和測試造成了麻煩。為了應(yīng)對這種情況,我們常會搭建一個(gè)臨時(shí)的server,模擬那些服務(wù),提供模擬數(shù)據(jù)進(jìn)行聯(lián)調(diào)和測試。這個(gè)臨時(shí)的server就是mock server。因此mock server通常具有以下特點(diǎn):


          • 快速搭建、無需寫代碼


          • 能模擬任何數(shù)據(jù)


          • 低成本


          • 簡單配置


          也正是這些特點(diǎn),均符合serverless的特點(diǎn),因此我們使用serverless來做這件事情再合適不過了。接下來我們就用騰訊云的云函數(shù)為例,來講解一下如何快速搭建Mock Server。



          一、如何用云函數(shù)快速搭建Mock Server


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


          這里就用Moco作為例子來教大家快速部署一個(gè)Mock Server。


          Moco是一個(gè)開源框架,Github鏈接:https://github.com/dreamhead/moco


          (一)準(zhǔn)備工作


          首先去Moco的github頁面下載準(zhǔn)備好的jar文件。


          其次需要自己準(zhǔn)備一個(gè)定義response的JSON文件,如下。里面的內(nèi)容需要根據(jù)自己的業(yè)務(wù)去定義要返回的mock數(shù)據(jù)是什么。


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


          最后在云函數(shù)中運(yùn)行需要一個(gè)啟動文件,文件名必須是scf_bootstrap,內(nèi)容如下:


          #!/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則需要改成自己的文件名。


          然后把這個(gè)三個(gè)文件打包成一個(gè)zip文件,如下圖。




          (二)部署Mock Server


          打開云函數(shù)的控制臺,新建一個(gè)云函數(shù)。如下圖。


          • 選擇自定義創(chuàng)建


          • 選擇Web函數(shù)


          • 運(yùn)行環(huán)境選擇Java8


          • 在函數(shù)代碼那里上傳剛才打包好的zip文件



          最后,點(diǎn)擊完成即可。


          然后,你到函數(shù)管理界面就可以看到訪問路徑了。如下圖,向URL發(fā)送HTTP請求就能獲得你在JSON文件中定義的response。




          (三)一鍵部署


          上面的方式是不是已經(jīng)很快捷了。但是還有更快的,沒錯(cuò)!mock server已經(jīng)上架到云函數(shù)的官方模版中了。如下圖,在模版中搜索mock就可以看到,一鍵就可以部署一個(gè)Mock server了。



          注意:模版部署的mock server自帶一個(gè)默認(rèn)的response json文件,大家可以通過下載已部署的代碼包,替換里面的json文件成自己的,然后重新部署。具體步驟可以參考模版源碼中的readme。



          二、用Serverless搭建Mock Server的優(yōu)勢


          用Serverless搭建Mock Server具有下面幾個(gè)優(yōu)勢:


          (一)快速搭建


          所有開發(fā)團(tuán)隊(duì)都希望只花極少的時(shí)間就能快速搭建一個(gè)Mock Server。因此使用Serverless不用關(guān)注和維護(hù)服務(wù)器,所以可以快速搭建運(yùn)行一個(gè)mock server。



          (二)極低成本


          由于Mock server只用于測試,如果我們購買服務(wù)器來搭建,會增加不少金錢成本和維護(hù)成本。


          而Serverless按量收費(fèi)和免運(yùn)維的特點(diǎn),則可以既節(jié)約了金錢成本,又節(jié)約了維護(hù)成本。


          通常我們調(diào)用Mock Server的次數(shù)都很少,而云函數(shù)是按調(diào)用次數(shù)收費(fèi)的,每個(gè)月有10萬次免費(fèi)調(diào)用次數(shù)。所以使用云函數(shù)則可以免費(fèi)薅羊毛。



          (三)無需運(yùn)維


          我們不需要像管理服務(wù)器那樣需要去配置端口、防火墻等。只需要上傳mock server就結(jié)束了。



          三、結(jié)語


          Serverless還可以做很多類似的事情,因?yàn)樗母咝阅堋⒆詣由炜s、按量計(jì)費(fèi)等特性,讓它成為了很多解決方案中的性價(jià)比首選。


          云函數(shù)官網(wǎng):https://cloud.tencent.com/product/scf?from=15939
          事件總線官網(wǎng):
          https://cloud.tencent.com/product/eb?from=15940


          ?推薦閱讀


          超實(shí)用教程!一探Golang怎樣踐行Clean Architecture?

          高并發(fā)場景下,6種方案,保證緩存和數(shù)據(jù)庫的最終一致性!

          顛覆Kafka的統(tǒng)治,新一代云原生消息系統(tǒng)Pulsar震撼來襲!

          七年激蕩!Serverless的下一站將去往何方?



          ??「閱讀原文」查看更多云函數(shù)最佳實(shí)踐!

          瀏覽 35
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级特黄视频 | 国产高清无码免费 | 97久久97欧美精品A片 | www黄网站 | 苍井空一二三 |