輕松搭建基于Serverless的Egg.jsWeb應用-創(chuàng)新互聯(lián)

輕松搭建基于 Serverless 的 Egg.js Web 應用

首先介紹下在本文出現(xiàn)的幾個比較重要的概念:

網站建設哪家好,找創(chuàng)新互聯(lián)!專注于網頁設計、網站建設、微信開發(fā)、成都微信小程序、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了海陵免費建站歡迎大家使用!

函數計算(Function Compute): 函數計算是一個事件驅動的服務,通過函數計算,用戶無需管理服務器等運行情況,只需編寫代碼并上傳。函數計算準備計算資源,并以彈性伸縮的方式運行用戶代碼,而用戶只需根據實際代碼運行所消耗的資源進行付費。函數計算更多信息 參考。
Fun: Fun 是一個用于支持 Serverless 應用部署的工具,能幫助您便捷地管理函數計算、API 網關、日志服務等資源。它通過一個資源配置文件(template.yml),協(xié)助您進行開發(fā)、構建、部署操作。Fun 的更多文檔 參考。

備注: 本文介紹的技巧需要 Fun 版本大于等于 3.6.9。
輕松搭建基于 Serverless 的 Egg.js Web 應用

Egg.js 是什么?

Egg.js 官方描述為:

Egg.js 為企業(yè)級框架和應用而生,我們希望由 Egg.js 孕育出更多上層框架,幫助開發(fā)團隊和開發(fā)人員降低開發(fā)和維護成本。
Egg 奉行『約定優(yōu)于配置』,按照一套統(tǒng)一的約定進行應用開發(fā),團隊內部采用這種方式可以減少開發(fā)人員的學習成本,開發(fā)人員不再是『釘子』,可以流動起來。
Egg 的插件機制有很高的可擴展性,一個插件只做一件事。Egg 通過框架聚合這些插件,并根據自己的業(yè)務場景定制配置,這樣應用的開發(fā)成本就變得很低。

Egg 特性:

  • 提供基于 Egg 定制上層框架的能力
  • 高度可擴展的插件機制
  • 內置多進程管理
  • 基于 Koa 開發(fā),性能優(yōu)異
  • 框架穩(wěn)定,測試覆蓋率高
  • 漸進式開發(fā)

示例效果預覽

本文涉及到的應用示例部署后的鏈接,點擊預覽效果:

Egg.js 應用示例: http://mtime.functioncompute.com/hot

環(huán)境準備

首先按照 Fun 的 安裝文檔里介紹的方法將 Fun 安裝到本機。

PS: 本文介紹的方法,不需要安裝 Docker,僅僅安裝 Fun 即可,最簡單的方式就是直接下載可執(zhí)行的二進制文件。

安裝完成后,可以執(zhí)行 fun —version 檢查 Fun 是否安裝成功。

第一個示例:快速初始化并部署一個 Egg.js 示例應用

根據官方 快速入門文檔描述的步驟依次如下操作。

初始化一個 egg.js 示例:

mkdir egg-example && cd egg-example
npm init egg --type=simple
npm i

將該示例在本地運行測試:

npm run dev

然后可以在瀏覽器訪問 http://127.0.0.1:7001 查看效果。

本地開發(fā)完成后,可以直接使用如下命令進行一鍵部署:

fun deploy -y

第二個示例:快速遷移一個已有的 Egg.js 應用

這里我們拿一個開源的 Egg.js web 應用做示例: https://github.com/OrangeXC/mtime

首先我們需要將該應用克隆下來:

git clone https://github.com/OrangeXC/mtime

進入到 mtime 目錄,使用 npm 安裝依賴:

npm install

本地啟動應用:

npm run dev

本地啟動應用時,會使用 config/config.default.js 這個配置,需要將該配置中的 mysql 的 username、password 等屬性配置為正確的值,才能將應用啟動起來。

啟動完成后,本地通過瀏覽器打開網址 http://127.0.0.1:7001 預覽效果即可。

輕松搭建基于 Serverless 的 Egg.js Web 應用

當本地測試完成后,我們就要考慮如何將其部署到線上了。部署到線上,Egg.js 默認會優(yōu)先使用 config/config.prod.js 的配置,我們可以配置線上的數據庫到這個文件里,這樣就可以實現(xiàn)本地開發(fā)與線上部署使用不同的數據庫的目的了。

當然,在本地也可以驗證下配置是否正確,直接使用 npm run start 就可以將應用以生產的方式運行起來,使用 npm run stop 可以將應用停止。

最后,我們還需要修改下 Egg.js 的緩存與日志目錄,我們添加下面的內容到 config/config.prod.js 中:

  config.rundir = '/tmp/run',
  config.logger = {
    dir: '/tmp/log',
  }

上面的配置表示將 Egg.js 緩存以及日志寫到函數計算的可寫目錄內(日志輸出到 console 也是可以的)。

最后,我們使用 Fun 一鍵部署:

fun deploy -y

部署完成后,可以在終端輸出看到臨時域名 13500180-1986114430573743.test.functioncompute.com,通過瀏覽器打開臨時域名可以看到與本地運行時一樣的效果。

總結

本文主要介紹了如何將 Egg.js 應用部署到函數計算。相比較與傳統(tǒng)的部署方法,不僅沒有更復雜,還省略了購買機器、安裝配置 Node、Npm 的步驟。可以實現(xiàn),將傳統(tǒng)的 Egg.js 應用在本地開發(fā)完成后,一鍵部署到遠端直接用于生產,并擁有了彈性伸縮、按量付費、免運維等特性。

如果您在遷移您的應用過程中遇到了問題,歡迎加入我們的 dingding 群 11721331 反饋。

“ 阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規(guī)模的落地實踐,做最懂云原生開發(fā)者的技術圈?!?/p>

網頁名稱:輕松搭建基于Serverless的Egg.jsWeb應用-創(chuàng)新互聯(lián)
本文網址:http://bm7419.com/article36/dehppg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿建站、動態(tài)網站、虛擬主機、營銷型網站建設域名注冊、小程序開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)