<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 實戰(zhàn)演練

          共 2798字,需瀏覽 6分鐘

           ·

          2021-04-07 19:00

          前兩篇說,Serverless 是與云廠商綁定的,所以,我們需要選擇一家云平臺服務商來進行實戰(zhàn)演練。我用過阿里云、AWS以及騰訊云提供的 Serverless,相比于其他廠商,我個人非常推薦騰訊云。并不是其他廠商不好,只是針對與初學者,騰訊云提供了非常友好的手冊及教程。如果你使用過小程序的云開發(fā),那么對于騰訊云,你會感到非常熟悉。


          騰訊云開發(fā)文檔中心:https://docs.cloudbase.net/



          注冊并登錄騰訊云

          前往騰訊云官網(wǎng),注冊騰訊云賬號,然后登錄賬號。如有賬號,可以直接登錄。注意,一定要先完成實名認證


          創(chuàng)建云函數(shù)

          登錄之后,申請開通 云開發(fā) CloudBase

          https://cloud.tencent.com/product/tcb ,進入控制臺,創(chuàng)建應用:


           

          創(chuàng)建成功后,點擊云函數(shù) --> 新建云函數(shù):



          將函數(shù)代碼修改如下:


           


          簡單解釋一下:

          index.js 是入口文件,其中的 main 函數(shù)是入口函數(shù),函數(shù)接受兩個參數(shù) event 對象context 對象


          event 對象指的是觸發(fā)云函數(shù)的事件。例如:

          • 在小程序端調(diào)用時,event 是小程序端調(diào)用云函數(shù)時傳入的參數(shù);

          • 在使用 HTTP 請求的形式調(diào)用時,event 是集成請求體。


          context 對象:包含了此調(diào)用的調(diào)用信息和函數(shù)的運行狀態(tài),可以使用 context 了解服務運行的情況。


          創(chuàng)建觸發(fā)器

          保存函數(shù)代碼后,如何執(zhí)行和訪問呢?前面說過,FaaS 產(chǎn)品的一大特性是事件驅(qū)動。想要讓函數(shù)代碼執(zhí)行,我需要創(chuàng)建一個事件的觸發(fā)器。我們比較熟悉的就是 HTTP 觸發(fā)器了,在騰訊云它叫 “HTTP 訪問服務”,點擊新建:



          等待觸發(fā)器創(chuàng)建成功后,我們可以使用默認域名,訪問應用函數(shù):


           

          本地環(huán)境及開發(fā)工具

          CloudBaseCLI 是云開發(fā)(Tencent CloudBase,TCB)開源的命令行界面交互工具,用于幫助用戶快速、方便的部署項目,管理云開發(fā)資源。CloudBaseCLI 是基于 Node.js 開發(fā)的工具,因此,我們需要保證本地的 Node.js 版本在 8.6 以上。


          執(zhí)行 npm i -g @cloudbase/cli yarn global add@cloudbase/cli 進行全局安裝,安裝成功后,使用 tcb -v 查看版本號,使用 tcb -h 查看相關幫助,顯示所有可用命令。


          在使用之前,我們需要先進行授權登錄,命令行執(zhí)行 tcb login,會自動彈出瀏覽器的授權界面,確認授權后,命令行的控制臺會打印登錄成功的相關信息:


           

          授權成功后,我們就可以在本地創(chuàng)建云函數(shù)了。在命令行執(zhí)行 tcb new 命令行的選項中,有一項需要注意,本地創(chuàng)建是只能創(chuàng)建函數(shù)而不是應用,也就是說,我們最好是先在控制臺創(chuàng)建好應用后,再創(chuàng)建本地函數(shù)。準備好之后,我們就可以看到可選的應用了,選擇函數(shù)所屬的應用后,再選擇對應的函數(shù)模板。


          這里我們選擇與之前一樣的 Node 云函數(shù)示例,輸入項目名稱后,云函數(shù)會下載相關代碼到本地。注意,此時,在控制臺中,我們是看不到這個函數(shù)的,也就是說,這個函數(shù)并沒有上線運行,其實命令行中也給了我們提示:“執(zhí)行命令 tcb 一鍵部署”,想要上線運行,還需要進到項目目錄中,執(zhí)行 tcb 命令。


           

          函數(shù)的運行是需要觸發(fā)器的,所以,函數(shù)部署成功后,執(zhí)行 tcb service create 命令,創(chuàng)建 http 觸發(fā)器,創(chuàng)建成功后會返回訪問地址,但是,與在控制臺創(chuàng)建觸發(fā)器一樣,需要等待幾分鐘的時間后才能看到訪問結(jié)果。


           

          接著,我們修改函數(shù)返回值的內(nèi)容,重新刷新后并沒有顯示,這需要我們更新函數(shù)代碼后才能生效,可以使用 tcb fn code update xxx 函數(shù)名,命令只會更新函數(shù)的代碼以及執(zhí)行入口,不會修改函數(shù)的其他配置。


          雖然代碼放在了本地編寫,但是本地是沒有觸發(fā)器的。雖然我有 Node 環(huán)境,但是與云環(huán)境還是有很大差異的,我不能每次寫完代碼,都需要上傳再測試啊,這種體驗根本就沒法用啊。


          為了解決這個問題,騰訊開發(fā)了開源的 scf-cli :https://github.com/TencentCloud/scf-node-debug 工具,幫助我們在本地快速調(diào)試,基本原理就是在我們本地開啟一個服務器充當觸發(fā)器,模擬云環(huán)境提供本地的調(diào)試。


           

          執(zhí)行 npm install scf-cli -g 安裝。安裝成功后,在項目目錄下執(zhí)行 scf init 或者 scf i 開啟本地測試環(huán)境,命令提示符會讓我們輸入入口文件的路徑,以及入口函數(shù)名,設置好超時時間后,選擇測試方式。


           

          如果選擇的是 http ,那么默認的會開啟 3000 端口的服務器。此時,我們就可以愉快地使用 Serverless 云原開發(fā)了。

           

          Express 與云函數(shù)

          經(jīng)過前面一系列的配置,我們終于可以在本地開發(fā)調(diào)試了。但是,使用純原生的 Node.js 開發(fā),安全性沒有足夠的保證,而且效率也是非常低,如果能在云函數(shù)中引入一款我們熟悉的框架,那么我們的開發(fā)才算坐上了高鐵。


          這里我們選擇一款比較大眾化的框架——Express,如何將 Express 結(jié)合到云函數(shù)中呢?


          先在本地安裝好 Express,按照以往的開發(fā)經(jīng)驗,我們在本地開啟 HTTP 服務。




          而在云函數(shù)中,我們知道代碼是在入口函數(shù)運行的,而且云環(huán)境中有 HTTP 的觸發(fā)器,是不需要我們創(chuàng)建服務器的。



          有一款開源工具,專門用來對框架代碼進行包裝,serverless-http:https://github.com/dougmoscrop/serverless-http


          https://www.npmjs.com/package/serverless-http 是專門用于在 Serverless 環(huán)境下包裝接口的模塊,不需要服務器,也不需要監(jiān)聽端口


          使用方式也很簡單,命令行安裝 npm install serverless-http



          寫好之后將代碼部署到云平臺,然后進行請求測試,在本地開發(fā)測試,我們開啟本地服務器就可以了。


          推薦閱讀:

          愚人節(jié)笑話:Serverless 就是無服務

          后端架構的演進之路:Serverless 的誕生

          從理解 React 框架開始,開啟金三銀四面試之旅。

          尤雨溪 3 天 10 更的 Vite 究竟有什么魔力?


          點個“在看”和“”吧,

          畢竟我是要成為前端網(wǎng)紅的人。

          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  日本精品二区 | 免费看日韩特级毛片 | 欧美三级午夜理伦三级18禁 | 97A片在线观看播放 | 精品AAA久久免费看 |