中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

官宣之后,Express和Functiongraph也公布戀情了

發布時間:2020-04-20 00:17:10 來源:網絡 閱讀:770 作者:中間件小哥 欄目:云計算

Express APP

作為一個Node.js開發者,相信大家都可能會使用Express框架,無論是構建后端服務,或是搭建一個前端的開發態服務器,Express都是一個很流行的選擇。構建Express是極為容易的,添加一些路由規則和對應的處理函數,再選擇一些中間件,一個應用就誕生了。

官宣之后,Express和Functiongraph也公布戀情了

 

一個使用傳統托管方法的簡單 Express.js App —— 響應單次請求的過程。

 

下列代碼展示了一個最簡單的 Express App:

'use strict'

 

const express = require('express')

const app = express()

app.get('/', (req, res) => res.send('Hello world!'))

 

module.exports = app

 

這就完成了一個 Express App。若使用瀏覽器訪問http://localhost:3000,你便可以在打開的網頁中看到“Hello world!” 信息。

 

應用部署

麻煩的問題來了:如何才能將你構建的 Express App 展示給你的朋友或者家人?如何才能讓每個人都能訪問到它?

 

應用部署是一個耗時且痛苦的過程,但現在我們就假定你已經很快、很好地完成了部署的工作。你的應用已經能被所有人訪問了,并且之后也運轉良好。就這樣直到一天,突然有一大批用戶涌入開始使用你的應用。你的服務器開始變得疲憊不堪,不過仍然還能工作。

官宣之后,Express和Functiongraph也公布戀情了

 

一個使用傳統托管方法的簡單 Express.js App —— 處于較大負載下。

 

就這樣持續了一段時間后,它終于宕機了。

官宣之后,Express和Functiongraph也公布戀情了

一個使用傳統托管方法的簡單 Express.js App —— 因為過多用戶訪問導致應用掛掉

 

一大批用戶因為應用無法訪問而變得不開心(無論他們是否為此應用付費)。你對此感到絕望,并開始在 Google 上尋求解決方法。如果在云上部署可以改善現狀嗎?

官宣之后,Express和Functiongraph也公布戀情了

在云上部署應該就可以解決應用規模伸縮的問題了,對吧?

 

此時你遇到了一個惱人的朋友,她又在給你談論 Serverless(無服務器)技術的種種。

官宣之后,Express和Functiongraph也公布戀情了

Try serverless

 

讓你的 Express App Serverless 化

在過去的文章《5分鐘serverless實踐|構建無服務器圖圖片鑒黃Web應用》中,你已經知道了 Serverless API 是由 API Gateway 和 FunctionGraph 組成的。現在需要考慮的是如何讓你的 Express App Serveless 化。就像 Matt Damon 出演的電影《縮小人生》中描繪的橋段,Serverless 在未來也具有無限的潛力和可能性。

官宣之后,Express和Functiongraph也公布戀情了

如何才能讓你的 Express App 無縫接入 FunctionGraph

 

讓我們向它請教一番!在集成到FunctionGraph之前,你的代碼需要稍微調整一下。你需要 export 你的 app,而不是調用 app.listen 去啟動它。你的 app.js 內容應該類似下列代碼:

'use strict'

 

const express = require('express')

const app = express()

 

app.get('/', (req, res) => res.send('Hello world!'))

 

module.exports = app

 

這樣修改后你可能無法在本地啟動 Express 服務器了,不過你可以通過額外添加 app.local.js 文件進行解決:

'use strict'

 

const app = require('./app')

 

const port = process.env.PORT || 3000

app.listen(port, () => 

  console.log(`Server is listening on port ${port}.`)

)

 

之后像啟動本地服務器執行下面的命令就可以了:

node app.local.js

 

為了讓應用的API能更好地使用API網關進行管理,你還需要確保你的所有API擁有一個共同的root_path。現在,進入FunctionGraph頁面創建一個函數,函數名為api的root_path,將本地Express工程打包上傳,作為函數的代碼。然后再為函數創建一個入口文件,可以點擊在線編輯器上File -> New File Template -> Node.js Express Server快速創建,入口文件代碼如下:

const fgsExpress= require('fgs-express');

const app = require('./app');    // Your Express app entry

const server = fgsExpress.createServer(app);

 

exports.handler =  (event, context, callback) => {

    fgsExpress.proxy(server, event, context, callback);

}

 

fgs-express三方件會包裝你的app,轉發apig和app之間的請求。至此,你的Serverless化的Express APP就上線了,在瀏覽器中打開響應信息中返回的鏈接,若網頁展示出 “Hello world!” 那么證明應用已經成功部署起來了!

官宣之后,Express和Functiongraph也公布戀情了

Serverless Express App

 

優勢

將你的應用 Serverless 化后,你不再畏懼用戶群體的進一步擴大,應用會始終保持為可用狀態。這并不是言過其實,因為在默認情況下 FunctionGraph 可通過彈性伸縮最高支持100個 function 并發執行。當 API Gateway 接收到請求后,新的 function 會在短時間內處于可用狀態。

官宣之后,Express和Functiongraph也公布戀情了

在高負載下的 Serverless Express.js App

 

這并不是你接入 Serverless 后唯一的收益。在保證應用不會因為高負載宕機的前提下,你同樣削減了不少應用的運行開銷。使用 FunctionGraph,你僅需按你應用的實際訪問量付費。同樣,FunctionGraph的免費試用計劃還將給予你每應用每月一百萬的免費流量(按訪問次數計算)。

官宣之后,Express和Functiongraph也公布戀情了

你的 Serverless App 真是太替你省錢了

 

更炫酷的Demo

在真實的項目中,是否真的能夠快速集成?下面我們來實際操作一波,在Github上找一個實際的Express項目,讓它Serverless化,快速上線。

官宣之后,Express和Functiongraph也公布戀情了

canfoo / react-taopiaopiao

 

這是一個基于Express和React構建的仿淘票票APP,其中包括對前、后端請求的處理,無需關注細節,我們將其Api的root_path設置為express-demo,然后將項目壓縮成zip包,將其作為代碼創建一個名為express-demo的函數。創建完成后為函數添加一個入口文件,并創建一個apig觸發器,即完成構建了。Apig觸發器中顯示的url即為Express程序的Api訪問地址根路徑。

 

現在,讓我們拭目以待吧,將此url生成一個二維碼,掏出手機,讓大家在世界各地訪問你APP吧。

 

愛情需要磨合——缺陷

即使Servlerss Express APP聽起來超贊,也會有一些缺陷。

官宣之后,Express和Functiongraph也公布戀情了

下面是 Serverless Express App 一些最 “致命” 的短板:

1、Websockets 無法在 FunctionGraph 中使用。這是因為在 Functiongraph 中,若應用沒有任何的訪問,那么你的服務器在客觀上也是不存在的。

2、上傳文件到文件系統同樣是無法工作的,除非你的上傳目錄是 /tmp 文件夾。這是因為 FunctionGraph 對文件系統是只讀的,即使你將文件上傳到了 /tmp 文件夾,它們也只會在 function 處于 “工作態” 時存在。為確保你應用中的上傳功能運轉正常,你應當把文件上傳并保存到 OBS 上。

3、執行限制也將影響你的 Serverless Express App 功能。例如 FunctionGraph 最大執行時間不能超過 5 分鐘等。

 

這僅僅算是你的應用與 FunctionGraph 之間關于 Serverless 愛情故事的一個序章,期待盡快涌現更多的愛情故事!

 

生活需要愛——感謝

本文Express介紹部分大量借鑒以下文章:

(英文原文) Express.js and AWS Lambda?—?a serverless love story(作者:Slobodan Stojanovi?)

(譯文) Express.js 與 AWS Lambda——一場關于Serverless的浪漫愛情故事(譯者:劉嘉一)

 

掃碼免費體驗函數工作流FunctionGraph~

官宣之后,Express和Functiongraph也公布戀情了


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濮阳市| 吉隆县| 宜良县| 金昌市| 潜江市| 平顺县| 榆林市| 上高县| 北安市| 高安市| 云林县| 华宁县| 绥棱县| 东兰县| 乌兰县| 辽源市| 罗田县| 嘉祥县| 益阳市| 谢通门县| 同仁县| 治多县| 若羌县| 吴旗县| 马边| 仁布县| 平舆县| 钟祥市| 昆山市| 邯郸县| 安康市| 海盐县| 新源县| 沙洋县| 镇沅| 孟津县| 新宾| 太康县| 柞水县| 临江市| 扬州市|