本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 ASP.NET Core 2.0 應用程式部署至亞馬遜 ECS (EC2)
本節將介紹如何使用發佈容器至AWS嚮導(作為適用 Toolkit for Visual Studio 的一部分提供),使用 EC2 啟動類型通過亞馬遜雲服務器部署面向 Linux 的容器化 ASP.NET 核心 2.0 應用程序。由於 Web 應用程式目標是要持續執行,它將部署為服務。
發佈容器之前
使用之前發佈容器至AWS部署 ASP.NET Core 2.0 應用程式:
-
安裝 Docker
。您有幾種不同的安裝選項,包括Docker (Windows) 。 -
建立 Amazon ECS 叢集基於 Web 應用程式的需求。它只需要幾個步驟。
-
在可視工作室中,創建(或打開)針對 Linux 的 ASP.NET 核心 2.0 容器化應用程序的項目。
訪問發佈容器至AWS巫師
若要部署鎖定 Linux 的 ASP.NET Core 2.0 容器化應用程式,在 Solution Explorer (方案總管) 專案中按一下滑鼠右鍵,然後選擇發佈容器至AWS。
您也可以選擇發佈容器至AWS在可視工作室生成菜單上。
發佈容器至AWS精靈
要使用的帳户檔案-選擇要使用的帳户檔案。
Region (區域)-選擇部署區域。配置文件和區域用於設置部署環境資源並選擇默認的 Docker 註冊表。
組態-選擇 Docker 映像構建配置。
Docker 存儲庫-選擇一個現有的 Docker 存儲庫或鍵入新存儲庫的名稱,然後創建它。這是構建的容器映像被推送到的存儲庫。
標籤-選擇現有標籤或鍵入新標記的名稱。標籤可以跟蹤重要的細節,例如版本、選項或 Docker 容器的其他唯一配置元素。
部署-選取ECS 叢集上的服務。如果應用程序要長時間運行(如 ASP.NET Core 2.0 Web 應用程序),請使用此部署選項。
將設定保存至aws-docker-tools-defaults.json
併為命令行部署配置項目-如果您希望從命令行靈活部署,請選中此選項。使用dotnet ecs deploy
部署和dotnet ecs publish
容器。
啟動組態頁面
ECS 叢集-選擇將運行 Docker 映像的集羣。您可以建立 ECS 叢集使用AWS管理主控台。
啟動類型-選擇 EC2 (EC2)。要使用 Fargate 啟動類型,請參見將 ASP.NET Core 2.0 應用程式部署至亞馬遜 ECS (Fargate)。
服務組態頁面
Service (服務)-在下拉菜單中選擇其中一個服務,將容器部署到現有服務中。或者選擇建立新的建立新服務。叢集中不得有相同的服務名稱,但一個區域內或多個區域間的多個叢集中可以有類似的服務名稱。
任務數量-在您的叢集上部署和保持執行的任務數量。每個任務都是您的容器的執行個體。
最低健康百分比-必須保留的任務的百分比RUNNING
狀態會無條件進入至最接近的整數。
最大百分比-任務的百分比在RUNNING
或者PENDING
狀態會無條件捨去至最接近的整數。
置放模板-選擇任務放置模板。
當您將任務啟動到叢集時,Amazon ECS 必須根據任務定義中所指定的需求 (例如 CPU 和記憶體) 來判斷要放置任務的位置。同樣地,當您縮減任務計數時,Amazon ECS 必須判斷要終止的任務。
放置模板控制如何將任務啟動到集羣中:
-
AZ Balanced Spread (AZ 平衡分配) - 跨可用區域及跨可用區域中的容器執行個體分散任務。
-
AZ Balanced BinPack (AZ 平衡 BinPack) - 使用最低可用記憶體,跨可用區域及跨可用區域中的容器執行個體分散任務。
-
BinPack - 根據最低可用的 CPU 或記憶體數分散任務。
-
One Task Per Host (每一主機一個任務) - 在每個容器執行個體上最多放置一個來自服務的任務。
如需詳細資訊,請參閱「」Amazon ECS 任務放置。
Application Load Balancer 頁面
配置 Application Load Balancer-選中此選項可以配置應用程式負載平衡器。
為服務選擇 IAM 角色-選擇一個現有角色或選擇建立新的並建立新角色。
負載平衡器-選擇現有負載平衡器或選擇建立新的,然後鍵入新負載均衡器的名稱。
接聽程式連接埠-選擇一個現有的監聽器端口,或選擇建立新的並鍵入連接埠號碼。默認端口80
,適用於大多數 Web 應用程序。
目標群組-根據預設,負載平衡器會使用您針對目標組所指定的埠號和通訊協定,來將請求傳送到登錄的目標。在透過目標群組來註冊每個目標時,您可以覆寫此埠號。
路徑模式-負載平衡器將使用以路徑為基礎的路由。接受預設/
或者提供不同的模式。路徑模式區分大小寫,長度最多可達 128 個字元,而且包含選擇字符集。
運作 Health 態檢查路徑-目標上運作狀態檢查目的地的 ping 路徑。默認情況下,它是/
並且適用於 Web 應用程序。如果需要,請輸入其他路徑。如果輸入的路徑無效,運行狀況檢查將失敗,並且將被視為運行狀況不佳。
如果部署多個服務,並且每個服務都將部署到不同的路徑或位置,則可能需要自定義檢查路徑。
彈性雲服務器任務定義頁
任務定義-選擇現有任務定義,或選擇建立新的並鍵入新的任務定義名稱。
容器-選擇一個現有的容器或選擇建立新的,然後輸入新容器名稱。
內存 (MiB)-為軟性限制或者硬性限制或兩者皆是。
所以此軟性限制(MiB) 來保留給容器使用的記憶體。Docker 會嘗試將容器記憶體保持在軟性限制下。容器會佔用更多記憶體,最多達到以記憶體參數指定的硬性限制 (如適用),或容器執行個體上的所有可用記憶體,以先達到者為準。
所以此硬性限制提供給容器使用的記憶體 (MiB)。如果您的容器嘗試使用超過此處指定的記憶體,容器便會終止。
任務角色-為 IAM 角色選擇一個任務角色,該角色允許容器調用AWS代表您在相關聯政策中指定的 API。這就是憑據傳遞到您的應用程序的方式。請參閱如何指定AWS應用程序的安全證書。
連接埠映射-新增、修改或刪除容器的連接埠映射。如果負載均衡器處於打開狀態,則主機端口默認為 0,端口分配將是動態的。
環境變數-新增、修改或刪除容器的環境變量。
當您滿意時,請單擊發布開始部署過程。
發佈容器至AWS
事件會在部署期間顯示。成功完成時精靈會自動關閉。您可以取消核取方塊頁面底部的方塊來覆寫它。
您可以在AWSExplorer。展開 Amazon ECS 和 Clusters,然後按一下您的叢集。