JavaScript >> Javascript 文檔 >  >> Node.js

使用 AWS Lambda 和 ExpressJs 創建您的第一個無服務器函數

將您當前的後端轉換為無服務器功能可能需要大量工作,但如果您使用的是 ExpressJs,可能有一種簡單的方法可以做到這一點。

在本文中,我將詳細介紹將您的應用程序轉換為 lambda 函數的步驟。

假設您有一個 Express 應用程序,它只是從 /data 中返回 Kanye West 的報價 路線。


這就是你的 app.js 看起來像。

第一步:

安裝一個有用的包。這是您的應用所需要的唯一魔法。

第二步:

修改你的 app.js 像這樣使用中間件來獲取 Lambda 從 API Gateway 接收的事件對象。
請記住導出您的應用。

第三步:

創建一個名為 lambda.js 的新文件 將您的快速服務器包裝為 lambda 處理程序。這將使用 Amazon API Gateway 配置一個簡單的代理 API,並將其與您的 Lambda 函數集成。

第四步 - 壓縮文件:

壓縮所有文件和文件夾(包括node_modules ) 在根目錄下放入一個.zip 文件(myfunction.zip 在這個演示中)。

第五步 - 創建你的函數:

登錄 AWS 並轉到 Lambda 頁面。





右上角區域,新建功能。



填寫基本信息。這裡我將函數命名為 myfunction 並選擇 Node.js 出於顯而易見的原因,作為運行時。






創建函數。這應該將您重定向到功能頁面。


第六步 - 配置你的功能:

進入功能頁面後,您現在可以設置功能。


Function Code 部分,上傳您的 .zip 文件。您可能會或可能不會在在線編輯器中看到實際代碼,因為這取決於您的應用程序有多大。





編輯你的 Runtime setting 部分。將處理程序/入口點更改為 lambda.lambdaHandler .格式應為:[處理程序的文件名稱].[處理程序的名稱] .




現在您已經設置了 lambda 函數。但是,您目前還不能直接調用它。您需要將 API 網關配置為在您的函數和公共互聯網之間充當中間人。

第七步 - 創建 API Gateway:

導航到 API 網關頁面。





開始構建 REST API。





填寫信息。


第八步 - 創建 API Gateway 資源:

單擊操作以創建資源/路由。





將資源/路線命名為與您的快速路線相同。
啟用 CORS。


第九步-創建資源的方法:

選擇我們剛剛創建的資源並點擊操作按鈕為其創建一個方法。


選擇 GET 方法。它應該與您的 /data 相同 路線。
當然,您可以在同一資源下創建多個方法。





配置方法以連接到您的 lambda 函數。
輸入 Lambda 函數的正確名稱和區域。請記住啟用 Lambda 集成。


第十步 - 部署您的 API:

單擊操作按鈕下的部署 API。





在這種情況下,創建一個新階段並為其命名,例如“prod”、“staging”或“v1”。





之後,導航到 stage 面板並選擇 v1 下的路線





在右側,您可以獲得此路由的調用鏈接。





測試路線。現在我們有了一個工作函數。


用法:

就個人而言,我不建議將整個後端邏輯放在 lambda 上,至少不是這樣。原因是現在 Lambda 函數雖然很快,但冷啟動仍然需要一兩秒。但對於電子郵件服務、自動化管道或圖像和視頻處理等功能,將它們分離為無服務器功能以降低成本是合理的。

結論:

當然,每次更改代碼時都壓縮和上傳文件是愚蠢的。但是,對於想要嘗試 lambda 但對處理 AWS(文檔或 UI)的耐心為零的人來說,這些只是一些小步驟。為了獲得更好的開發體驗,您可能需要使用 CloudFormation 和 SAM-cli,這將在下一篇文章中討論。


Tutorial JavaScript 教程
  1. 動畫標籤欄

  2. 在 Vue 中創建動畫移動導航

  3. ReactJS WebExtensions

  4. ES5 與 ES6:函數

  5. 使用 Code Attendant 提高您的工作效率。

  6. React 中的 HTML5 表單驗證

  7. javascript 中的日期解析在 safari 和 chrome 之間是不同的

  1. 每個 Web 程序員都應該知道的 5 個有用的 Jquery 函數 + 高級 DOM 遍歷技術

  2. 讓我們談談 JavaScript 中的作用域

  3. 使用 React 在 1 個文件中構建一個簡單的博客

  4. JavaScript 轉義字符串 |示例代碼

  5. 使用11ty搭建基礎網站

  6. 使用 JavaScript 切換顯示:無樣式

  7. 為什麼更多的開發者應該轉向 Gatsby

  1. 我們寫過的最好的 Node.js 和微服務文章

  2. 成為前端大師可以做的 10 多個項目

  3. JavaScript 的工作原理:深入了解 esbuild

  4. Vuex:為什麼我們需要 SPA 狀態管理