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

使用 AWS Elastic Beanstalk 部署 Node.js 應用程序

Amazon 的 Elastic Beanstalk 可讓您輕鬆部署和擴展您的應用程序。您可以使用此工具部署使用各種語言構建的應用程序。它抽像出部署中涉及的所有復雜性。您所要做的就是上傳您的代碼,其餘的由 Elastic Beanstalk 處理。它還為您提供額外的服務,例如負載均衡、健康監控和自動縮放。在本教程中,我將引導您了解如何使用 AWS Elastic Beanstalk 部署 Node JS 應用程序。

先決條件

要學習本教程,您應該已經安裝了 Node。

第 1 步 - 創建一個簡單的 Node JS 應用程序

您可以使用 express-generator 工具通過創建一個新目錄並在其中運行以下命令來快速創建 Node 應用程序:

npx express-generator

現在您應該有一個新的 Express 應用程序。你可以運行 npm install 安裝所有應用程序的依賴項。要查看應用程序,請運行 npm start 並導航到 http://localhost:3000 在您的瀏覽器中。

新的 Express 應用程序

第 2 步 - 創建 EB 應用程序

要部署新創建的應用程序,請導航到您的 AWS Elastic Beanstalk 環境並單擊創建應用程序 .

在 Create a web app 頁面上,執行以下操作:

  • 為您的應用命名。
  • 選擇 Node.js平台下 .
  • 離開示例應用程序 作為應用程序代碼下的選定選項 .
  • 點擊創建應用程序 .

創建 Elastic Beanstalk 應用程序

幾分鐘後,您的新 EB 應用程序應該準備就緒並生效。您可以通過點擊頁面左上角為您自動生成的鏈接來查看它。

Elastic Beanstalk 應用程序已準備就緒並上線

Elastic Beanstalk 應用程序已準備就緒並上線

第 3 步 - 手動部署

首先,我們需要壓縮我們的項目文件,以便它們可以一次全部上傳。導航到您的項目目錄,選擇除 node_modules 之外的所有文件和文件夾 , 並將它們壓縮成一個 zip 文件。

導航回您的 Elastic Beanstalk 控制台,然後在左側窗格中,選擇您之前創建的環境。正如您在下面看到的,我的是“Honeynode-env”。

Elastic Beanstalk 環境在左側

接下來,選擇上傳和部署 .

點擊選擇文件 ,選擇剛剛創建的zip文件,然後點擊Deploy .

上傳和部署

幾分鐘後,部署應該完成。現在,如果您單擊 AWS EB 生成的 URL,您應該會看到您部署的應用程序。

持續集成和部署(CI/CD)

CI/CD 涉及自動構建、測試和部署應用程序。此過程消除了手動執行這些任務時經常犯的錯誤。它還可以為您的團隊節省大量精力和時間。

借助 CI/CD,可以自動測試和部署對應用程序所做的代碼更改,從而使客戶能夠快速改進您的應用程序和新功能。

我們可以使用 AWS CodePipeline 將 Node JS 應用程序自動部署到 AWS EB。我們將應用程序代碼上傳到 GitHub 並使用 CodePipeline 將 GitHub 存儲庫連接到 Elastic Beanstalk。

第 1 步 - 將本地倉庫推送到 GitHub

打開您的 GitHub 帳戶,創建一個新的 repo,然後通過 CLI 將您的本地 repo 推送到遠程 repo。

創建一個新的存儲庫

git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/username/projectname.git
git push origin master

第 2 步 - 創建管道

接下來,轉到 AWS 控制台中的搜索欄,搜索 CodePipeline ,然後點擊它。

搜索 CodePipeline

在 CodePipeline 控制台上,單擊 創建管道 .

創建 CodePipeline

為您的管道命名(可以是任何名稱)。

要讓 CodePipeline 為您創建新的服務角色,請選擇 New service role .新的角色名稱 將為您自動生成。

管道設置

點擊下一步 .

現在我們需要將 AWS CodePipeline 指向我們想要自動化部署的遠程存儲庫。在我們的例子中,它是一個 GitHub 存儲庫。將 repo 添加到 CodePipeline 後,對 repo 所做的每個後續提交都將自動部署。

第 3 步 - 將管道連接到 GitHub

添加來源 頁面,選擇 GitHub (Version 2) 作為您的代碼源提供者。

如果您沒有現有的 GitHub 連接,請單擊 連接到 GitHub 授予 AWS CodePipeline 訪問您的 GitHub 帳戶和存儲庫的權限。

添加來源

在彈出的新窗口或選項卡中,為您的連接命名(可以是任何名稱)。

點擊連接到 GitHub 按鈕。

創建連接

在下一頁上,AWS Connector for GitHub 請求權限以驗證您的 GitHub 身份並控制對您的資源的訪問。要授予權限,請單擊Authorize AWS Connector for GitHub .

適用於 GitHub 的 AWS 連接器

授權後,您將被重定向回創建連接 頁面。

授權後你會被重定向

要讓 GitHub 應用程序生成指向您的 GitHub 的鏈接以供 CodePipeline 使用,請單擊安裝新應用程序 .

安裝新應用

這一次,您將被重定向到一個頁面,以選擇您要連接的 GitHub 帳戶或組織。選擇合適的選項。

選擇合適的帳戶

接下來,系統將提示您決定是要授予 AWS 訪問您賬戶中所有存儲庫的權限還是僅授予特定存儲庫的訪問權限。在這裡,您可以選擇您喜歡的選項。我會選擇所有存儲庫 .

所有存儲庫

點擊安裝 .

安裝後,您將被重定向到創建連接 頁面。

你會被重定向

點擊連接 完成這個過程。

連接到 GitHub

現在,回到添加源頁面,您應該會看到 Ready to connect 消息。

準備連接

如果您單擊存儲庫名稱 搜索框,您應該會看到您的存儲庫列表。選擇你要部署的那個。

接下來,選擇分支名稱(master 對我來說)。

點擊下一步 .

構建階段是可選的,所以我們可以跳過它。點擊跳過構建階段 .

第 4 步 - 將我們的管道連接到部署工具

部署提供者下 , 選擇 AWS Elastic Beanstalk 作為部署應用的工具。

區域下 ,保留創建管道的默認區域。

對於應用程序名稱 ,選擇您在 AWS Elastic Beanstalk 中創建的應用程序。

環境名稱下 ,為您在上面選擇的應用程序選擇合適的環境。

點擊下一步 .

部署階段

關於評論 頁面,檢查您選擇的所有選項,並確保您沒有出錯。如果一切正常,請點擊創建管道 完成這個過程。

評論頁面

現在您的代碼將從源代碼部署到 Elastic Beanstalk。

如果您加載 Elastic Beanstalk URL,您應該會看到新部署的應用程序。如果您提交任何更改並將其推送到您的 GitHub 存儲庫,它應該會反映在您的 Elastic Beanstalk 應用程序中。

新部署的應用程序

結論

您已完成本教程!我們創建了一個 Elastic Beanstalk 應用程序並將我們的本地 Node JS 代碼推送到 Elastic Beanstalk。我們還通過在 GitHub 上託管 Node JS 代碼、使用 AWS CodePipeline 創建管道以及使用該管道將我們的代碼自動部署到 Elastic Beanstalk 來實施 CI/CD。為避免產生費用並使 AWS 向您的信用卡收費,請務必刪除您在平台上設置的所有應用程序和環境。


Tutorial JavaScript 教程
  1. 使用 Set 類從數組中刪除重複項

  2. 如何將 Flask 連接到 ReactJs

  3. 模塊星期一 50 🎉 單頁應用程序及更多

  4. 如何在 Laravel Mix 中使用 Preact

  5. 我如何使用 Google Apps 腳本和表格為教皇構建匹配服務

  6. 賽普拉斯中的兩個新網址,但第二個缺少路徑變量

  7. 最佳假日主題密碼筆

  1. 使用 WebSocket 的聊天應用程序:添加新用戶

  2. 如何在 iOS 和 Android 中搭建跨域通信橋樑

  3. 為什麼我搬到 TypeScript 並且不後悔

  4. 阿波羅和外部服務

  5. 在 React 16 中從 setState 返回 null

  6. 數據結構可以由另一個數據結構構成嗎?

  7. 原生 JavaScript 中的 jQuery.param()

  1. 為開源項目 JS-DOM 做貢獻

  2. Twitter API,耶耶!

  3. 如何使用 HTML5 Canvas 在 Vanilla JavaScript 中生成謝爾賓斯基三角形

  4. 燈塔:期望與現實