本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 ASP.NET Core 2.0 应用程序部署到 Amazon ECS(Fargate)(传统)
重要
本文档涉及旧版服务和功能。有关更新的指南和内容,请参阅 AWS.NET 部署工具
本节介绍如何使用作为 VisuToolkit for Visual Studio 一部分提供的 “发布容器到AWS” 向导,使用 Fargate 启动类型通过 Amazon ECS 部署针对 Linux 的容器化 ASP.NET Core 2.0 应用程序。由于 Web 应用程序要持续运行,因此将作为一项服务部署。
在您发布容器之前
在使用 “发布容器到AWS” 向导部署 ASP.NET Core 2.0 应用程序之前:
-
安装 Docker
。有几个不同的安装选项,包括 Docker for Windows 。 -
在 Visual Studio 中,为针对 Linux 的 ASP.NET Core 2.0 容器化应用程序创建(或打开)一个项目。
访问 “将容器发布到AWS” 向导
要部署针对 Linux 的 ASP.NET Core 2.0 容器化应用程序,请在解决方案资源管理器中右键单击该项目,然后选择 “将容器发布到”AWS。
也可以在 Visual Studio 的 “构建” 菜单AWS上选择 “将容器发布到”。
将容器发布到AWS向导
Account profile to use (要使用的账户配置文件) - 选择要使用的账户配置文件。
Region (区域) - 选择部署区域。配置文件和区域用于设置您的部署环境资源并选择默认的 Docker 注册表。
Configuration (配置) - 选择 Docker 映像构建配置。
Docker Repository (Docker 存储库) - 选择现有 Docker 存储库,或键入新存储库的名称即可创建新存储库。这是构建容器要推送到的存储库。
Tag (标签) - 选择现有标签或键入新标签的名称。标签可以跟踪重要详细信息,如 Docker 容器的版本、选项或其他唯一配置元素。
Deployment Target (部署目标) – 选择 Service on an ECS Cluster (ECS 集群上的服务)。当您的应用程序(如 ASP.NET Web 应用程序)计划长时间运行时,请使用此部署选项。
将设置保存到 aws-docker-tools-defaults.json
并为命令行部署配置项目 - 如果您需要从命令行灵活部署,请选中此选项。使用您的项目目录中的 dotnet ecs deploy
以部署和 dotnet ecs publish
容器。
“Launch Configuration (启动配置)”页面
ECS Cluster (ECS 集群) – 选择将运行 Docker 映像的集群。如果您选择创建空集群,请为您的新集群命名。
Launch Type (启动类型) - 选择 FARGATE。
CPU Maximum (vCPU) (CPU 最大容量(vCPU)) - 选择您的应用程序所需的最大计算容量。要查看 CPU 和内存值的允许范围,请参阅任务大小。
Memory Maximum (GB) (CPU 最大容量(GB)) – 选择您的应用程序可用的最大内存容量。
VPC Subnets (VPC 子网) – 选择单个 VPC 中的一个或多个子网。如果您选择多个子网,则您的任务将分配到这几个子网中。这可以提高可用性。有关更多信息,请参阅默认 VPC 和默认子网。
Security Groups (安全组) - 选择一个安全组。
安全组可作为关联 Amazon EC2 实例的防火墙,在实例级别控制入站和出站流量。
默认安全组配置为允许来自分配给同一安全组的多个实例的入站流量和所有出站 IPv4 流量。您需要允许出站,以便服务可以访问容器存储库。
Assign Public IP Address (分配公有 IP 地址) – 选中此复选框以便从 Internet 访问任务。
“Service Configuration (服务配置)”页面
Service (服务) - 从下拉框中选择一项服务,将您的容器部署到该现有服务。或者选择 Create New (新建) 新建一项服务。一个集群中的服务名称必须唯一,但是您可以为一个区域或多个区域中多个集群中的服务提供相似的名称。
Number of Tasks (任务数) - 要在您的集群中部署并保持运行的任务数量。每个任务都是您的容器的一个实例。
Minimum Healthy Percent (最小正常运行状况百分比) - 在部署期间必须处于 RUNNING
状态的任务百分比(四舍五入到最近的整数)。
Maximum Percent (最大百分比) - 在部署期间允许处于 RUNNING
或 PENDING
状态的任务百分比(向下舍入到最近的整数)。
“Application Load Balancer (应用程序负载均衡器)”页面
Configure Application Load Balancer (配置应用程序负载均衡器) - 选中此项可配置应用程序负载均衡器。
Load Balancer (负载均衡器) - 选择一个现有负载均衡器,或者选择 Create New (新建) 并键入新负载均衡器的名称。
Listener Port (侦听器端口) - 选择一个现有侦听器端口,或者选择 Create New (新建) 并键入一个端口号。默认端口 80
适用于大多数 Web 应用程序。
目标组-选择 Amazon ECS 将任务注册到的目标组。
Path Pattern (路径模式) - 负载均衡器将使用基于路径的路由。接受默认 /
或提供一个不同模式。路径模式区分大小写,长度最多为 128 个字符,并且可包含一组选定字符。
Health Check Path (运行状况检查路径) - 进行运行状况检查的目标上的目的地的 Ping 路径。默认为 /
。输入不同的路径(如果需要)。如果您输入的路径无效,则运行状况检查将失败,并将视为运行状况不佳。
如果您要部署多个服务,且每个服务都将部署到不同的路径或位置,您需要自定义检查路径。
“Task Definition (任务定义)”页面
Task Definition (任务定义) - 选择一个现有任务定义,或者选择 Create New (新建) 并键入新任务定义的名称。
Container (容器) - 选择一个现有容器,或者选择 Create New (新建) 并键入新容器的名称。
任务角色-选择一个 IAM 角色,该角色拥有您的应用程序访问AWS服务所需的证书。凭证就是通过这种方法传递给您的应用程序的。查看如何为您的应用程序指定AWS安全证书。
任务执行角色-选择具有提取私有映像和发布日志权限的角色。 AWSFargate 会代表您使用这一事宜。
Port Mapping (端口映射) - 选择绑定到自动分配的主机端口的容器上的端口号。
Environment Variables (环境变量) - 添加、修改或删除容器的环境变量。您可以进行修改以满足部署要求。
如果您对配置满意,请单击 Publish (发布) 开始部署流程。
将容器发布到AWS
在部署过程中会显示事件。成功完成后向导会自动关闭。您可以通过取消选中页面底部的复选框来覆盖该功能。
您可以在AWS资源管理器中找到新实例的 URL。展开 Amazon ECS 和集群,然后单击您的集群。