

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 ASP.NET Core 2.0 應用程式部署至 Amazon ECS (Fargate) （舊版）
<a name="deployment-ecs-aspnetcore-fargate"></a>

**重要**  
本文件是指舊版服務和功能。如需更新的指南和內容，請參閱 [AWS .NET 部署工具](https://aws.github.io/aws-dotnet-deploy/)指南和更新的[部署至 AWS](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-chapt.html)目錄。

本節說明如何使用 Toolkit for Visual Studio 提供的**發佈容器精靈 AWS**，使用 Fargate 啟動類型透過 Amazon ECS 部署以 Linux 為目標的容器化 ASP.NET Core 2.0 應用程式。由於 Web 應用程式目標是要持續執行，它將部署為服務。

## 在您發佈容器之前
<a name="tkv-deploy-ecs-netcore-prerequisites"></a>

使用**發佈容器精靈 AWS**部署 ASP.NET Core 2.0 應用程式之前：
+  [指定您的 AWS 登入](deployment-ecs-specify-credentials.md)資料，並使用 [Amazon ECS 進行設定](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html)。
+  [安裝 Docker](https://docs.docker.com/engine/installation)。您有一些不同的安裝選項，包括 [Docker for Windows](https://docs.docker.com/docker-for-windows/install/)。
+ 在 Visual Studio 中，為以 Linux 為目標的 ASP.NET Core 2.0 容器化應用程式建立 （或開啟） 專案。

## 存取要 AWS 精靈的發佈容器
<a name="tkv-deployment-ecs-netcore-accessing"></a>

若要部署以 Linux 為目標的 ASP.NET Core 2.0 容器化應用程式，請在 Solution Explorer 中的專案上按一下滑鼠右鍵，然後選取將**容器發佈至 AWS**。

![內容功能表，其中已將容器發佈至 AWS 選項反白顯示。](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step0a.png)


您也可以在 Visual Studio Build 功能表中選取將**容器發佈至 AWS** 。

## 將容器發佈至 AWS 精靈
<a name="tkv-deploy-ecs-pubtoaws"></a>

![將容器發佈至具有設定檔、Docker 映像和 ECS 部署設定的 AWS 對話方塊。](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step1.png)


 **要使用的帳戶設定檔** - 選取要使用的帳戶設定檔。

 **區域** - 選擇部署區域。設定檔和區域用於設定部署環境資源，以及選取預設 Docker 登錄檔。

 **組態** - 選取 Docker 映像建置組態。

 **Docker 儲存庫** - 選擇現有的 Docker 儲存庫，或輸入新儲存庫的名稱，即可建立該儲存庫。這是要推送建置容器的儲存庫。

 **標籤** - 選取現有標籤或輸入新標籤的名稱。標籤可以追蹤 Docker 容器的版本、選項或其他唯一組態元素等重要詳細資訊。

 **部署目標** - 選取 **ECS 叢集上的服務**。當您的應用程式需要長時間執行時 （例如 ASP.NET Web 應用程式），請使用此部署選項。

 **將設定儲存至 `aws-docker-tools-defaults.json`並設定專案以進行命令列部署** - 如果您想要從命令列部署的彈性，請勾選此選項。`dotnet ecs deploy` 從您的專案目錄使用 來部署 和 `dotnet ecs publish` 容器。

## 啟動組態頁面
<a name="tkv-deploy-ecs-launch-configuration"></a>

![啟動組態對話方塊顯示 ECS 叢集 、啟動類型、運算容量和網路設定。](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step2.png)


 **ECS 叢集** - 選擇將執行 Docker 映像的叢集。如果您選擇建立空叢集，請提供新叢集的名稱。

 **啟動類型** - 選擇 **FARGATE**。

 **CPU 上限 (vCPU)** - 選擇應用程式所需的運算容量上限。若要查看允許的 CPU 和記憶體值範圍，請參閱[任務大小](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)。

 **記憶體上限 (GB)** - 選取應用程式可用的記憶體數量上限。

 **VPC 子網路** - 選擇單一 VPC 下的一或多個子網路。如果您選擇多個子網路，您的任務會分散到各個子網路。這可以改善可用性。如需詳細資訊，請參閱[預設 VPC 和預設子網路](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html)。

 **安全群組** - 選擇安全群組。

安全群組可做為相關聯 Amazon EC2 執行個體的防火牆，在執行個體層級控制傳入和傳出流量。

 [預設安全群組](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html)設定為允許從指派給相同安全群組的執行個體和所有傳出 IPv4 流量傳入流量。您需要允許傳出，服務才能連線到容器儲存庫。

 **指派公有 IP 地址** - 勾選此選項，讓您的任務可從網際網路存取。

## 服務組態頁面
<a name="tkv-deploy-ecs-service"></a>

![服務組態頁面，其中包含任務數量、運作狀態百分比下限和百分比上限的欄位。](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step3.png)


 **服務** - 在下拉式清單中選取其中一個服務，將您的容器部署到現有的服務。或者，選擇**建立新**服務以建立新的服務。叢集中不得有相同的服務名稱，但一個區域內或多個區域間的多個叢集中可以有類似的服務名稱。

 **任務數量** - 在叢集上部署和持續執行的任務數量。每個任務都是您容器的一個執行個體。

 **最小良好百分比** - 部署期間必須保持 `RUNNING` 狀態的任務百分比，四捨五入至最接近的整數。

 **百分比上限** - 部署期間允許處於 `RUNNING`或 `PENDING` 狀態的任務百分比，四捨五入至最接近的整數。

## Application Load Balancer 頁面
<a name="tkv-deploy-ecs-app-load-balancer"></a>

![Application Load Balancer 具有負載平衡器和目標群組設定的組態對話方塊。](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step4.png)


 **設定 Application Load Balancer** - 檢查以設定應用程式負載平衡器。

 **Load Balancer** - 選取現有的負載平衡器，或選擇**建立新**負載平衡器，然後輸入新負載平衡器的名稱。

 **接聽程式連接埠** - 選取現有的接聽程式連接埠，或選擇**建立新**並輸入連接埠號碼。預設連接埠 `80`適用於大多數 Web 應用程式。

 **目標群組** - 選取 Amazon ECS 會將任務註冊到服務的目標群組。

 **路徑模式** - 負載平衡器將使用路徑型路由。接受預設值`/`或提供不同的模式。路徑模式區分大小寫，長度最多可達 128 個字元，並包含[一組選取的字元](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions)。

 **運作狀態檢查路徑** - 運作狀態檢查目標上的目的地 ping 路徑。在預設情況下，大小上限為 `/`。如有需要，請輸入不同的路徑。如果您輸入的路徑無效，運作狀態檢查將會失敗，而且會被視為運作狀態不佳。

如果您部署多個服務，而且每個服務都會部署到不同的路徑或位置，您將需要自訂檢查路徑。

## 任務定義頁面
<a name="tkv-deploy-ecs-task-definition"></a>

![任務定義頁面顯示 ASPNETCoreSample 容器部署的組態 AWS 。](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step5.png)


 **任務定義** - 選取現有的任務定義，或選擇**建立新**並輸入新的任務定義名稱。

 **容器** - 選取現有的容器，或選擇**建立新**容器，然後輸入新的容器名稱。

 **任務角色** - 選取具有應用程式存取 AWS 服務所需登入資料的 IAM 角色。這是登入資料傳入您的應用程式的方式。[了解如何為您的應用程式指定 AWS 安全登入](deployment-ecs-specify-credentials.md)資料。

 **任務執行角色** - 選取具有提取私有映像和發佈日誌許可的角色。 AWS Fargate 將代表您使用它。

 **連接埠映射** - 選擇容器上繫結至自動指派主機連接埠的連接埠號碼。

 **環境變數** - 新增、修改或刪除容器的環境變數。您可以修改它以符合您的部署。

當您對組態感到滿意時，請按一下**發佈**以開始部署程序。

## 將容器發佈至 AWS
<a name="tkv-deploy-ecs-publishing"></a>

![將容器發佈至 AWS 精靈，顯示已完成任務的部署進度。](http://docs.aws.amazon.com/zh_tw/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step6.png)


事件會在部署期間顯示。成功完成時精靈會自動關閉。您可以取消核取方塊頁面底部的方塊來覆寫它。

您可以在 AWS Explorer 中找到新執行個體的 URL。展開 Amazon ECS 和叢集，然後按一下叢集。