

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# QuickStart: 将 ASP.NET 应用程序部署到 Elastic Beanstalk
<a name="aspnet-quickstart"></a>

本 QuickStart 教程将引导您完成创建 ASP.NET 应用程序并将其部署到 AWS Elastic Beanstalk 环境的过程。

**不用于生产用途**  
示例仅用于演示。请勿在生产环境中使用示例应用程序。

**Topics**
+ [你的 AWS 账户](#aspnet-quickstart-aws-account)
+ [先决条件](#aspnet-quickstart-prereq)
+ [步骤 1：创建 ASP.NET 应用程序](#aspnet-quickstart-create-app)
+ [步骤 2：在本地运行应用程序](#aspnet-quickstart-run-local)
+ [步骤 3：使用部署您的 ASP.NET 应用程序 AWS Toolkit for Visual Studio](#aspnet-quickstart-deploy)
+ [步骤 4：在 Elastic Beanstalk 上运行应用程序](#aspnet-quickstart-run-eb-ap)
+ [第 5 步：清理](#aspnet-quickstart-cleanup)
+ [AWS 您的应用程序的资源](#aspnet-quickstart-eb-resources)
+ [后续步骤](#aspnet-quickstart-next-steps)
+ [使用 Elastic Beanstalk 控制台进行部署](#aspnet-quickstart-console)

## 你的 AWS 账户
<a name="aspnet-quickstart-aws-account"></a>

如果您还不是 AWS 客户，则需要创建一个 AWS 帐户。注册后，您就可以访问 Elastic Beanstalk AWS 和其他所需的服务。

如果您已经有一个 AWS 帐户，则可以继续前进[先决条件](#aspnet-quickstart-prereq)。

### 创建一个 AWS 账户
<a name="aspnet-quickstart-aws-account-procedure"></a>

#### 注册获取 AWS 账户
<a name="sign-up-for-aws"></a>

如果您没有 AWS 账户，请完成以下步骤来创建一个。

**要注册 AWS 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://aws.amazon.com/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

#### 创建具有管理访问权限的用户
<a name="create-an-admin"></a>

注册后，请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center，启用并创建管理用户，这样您就不会使用 root 用户执行日常任务。

**保护你的 AWS 账户根用户**

1.  选择 **Root 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者的身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅《AWS 登录 用户指南》**中的 [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证（MFA）。

   有关说明，请参阅 I [A *M* 用户指南中的为 AWS 账户 根用户（控制台）启用虚拟 MFA 设备](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**创建具有管理访问权限的用户**

1. 启用 IAM Identity Center。

   有关说明，请参阅**《AWS IAM Identity Center 用户指南》中的[启用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，为用户授予管理访问权限。

   有关使用 IAM Identity Center 目录 作为身份源的教程，请参阅《[用户*指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户*访问权限](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理访问权限的用户身份登录**
+ 要使用您的 IAM Identity Center 用户身份登录，请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录 URL。

  有关使用 IAM Identity Center 用户[登录的帮助，请参阅*AWS 登录 用户指南*中的登录 AWS 访问门户](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**将访问权限分配给其他用户**

1. 在 IAM Identity Center 中，创建一个权限集，该权限集遵循应用最低权限的最佳做法。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 将用户分配到一个组，然后为该组分配单点登录访问权限。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

## 先决条件
<a name="aspnet-quickstart-prereq"></a>

本 QuickStart 教程将引导你使用 Visual Studio 创建 “Hello World” 应用程序并将其部署到 Elastic Beanstalk 环境中。 AWS Toolkit for Visual Studio

### Visual Studio
<a name="aspnet-quickstart-prereq.vs"></a>

要下载和安装 Visual Studio，请按照 Visual Studio [下载页面](https://visualstudio.microsoft.com/downloads/)上的说明进行操作。此示例使用 Visual Studio 2022。在 Visual Studio 安装过程中，选择以下特定项：
+ 在**工作负载**选项卡上 — 选择 **ASP.NET 和 Web 开发**。
+ 在**单个组件**选项卡上 — 选择 **.NET Framework 4.8 开发工具**和 **.NET Framework 项目和项模板**。

### AWS Toolkit for Visual Studio
<a name="aspnet-quickstart-prereq.aws-vs-tk"></a>

要下载和设置， AWS Toolkit for Visual Studio 请按照《 AWS Toolkit for Visual Studio 用户指南》的 “[入门](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/getting-set-up.html)” 主题中的说明进行操作。

## 步骤 1：创建 ASP.NET 应用程序
<a name="aspnet-quickstart-create-app"></a>

接下来，创建一个将部署到 Elastic Beanstalk 环境的应用程序。我们将创建一个“Hello World”ASP.NET Web 应用程序。

**创建 ASP.NET 应用程序**

1. 启动 Visual Studio。在**文件**菜单中，选择**新建**，然后选择**项目**。

1. 将显示**创建新项目**对话框。选择 **ASP.NET Web 应用程序（.NET Framework）**，然后选择**下一步**。

1. 在**配置您的新项目**对话框中，输入 `eb-aspnet` 作为您的**项目名称**。从**框架**下拉菜单中，选择 **.NET Framework 4.8**，然后选择**创建**。

   记下项目目录。在此示例中，项目目录为 `C:\Users\Administrator\source\repos\eb-aspnet\eb-aspnet`。

1. 此时将显示**创建新的 ASP.NET Web 应用程序**对话框。选择**空**模板。接下来，选择**创建**。

   此时，您已使用 Visual Studio 创建了一个空的 ASP.NET Web 应用程序项目。接下来，我们将创建一个 Web 表单作为 ASP.NET Web 应用程序的入口点。

1. 从**项目**菜单中，选择**添加新项目**。在**添加新项目**页面上，选择 **Web 表单**并将其命名为 `Default.aspx`。接下来选择**添加**。

1. 将以下内容添加到 `Default.aspx:`

   ```
   <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="eb_aspnet.Default" %>
   
   <!DOCTYPE html>
   
   <html xmlns="https://www.w3.org/1999/xhtml">
   <head runat="server">
       <title>Hello Elastic Beanstalk!</title>
   </head>
   <body>
       <form id="body" runat="server">
           <div>
               Hello Elastic Beanstalk! This is an ASP.NET on Windows Server application.
           </div>
       </form>
   </body>
   </html>
   ```

## 步骤 2：在本地运行应用程序
<a name="aspnet-quickstart-run-local"></a>

在 Visual Studio 中，从**调试**菜单中选择**开始调试**，以在本地运行应用程序。页面应显示“Hello Elastic Beanstalk\$1 This is an ASP.NET on Windows Server application.”

## 步骤 3：使用部署您的 ASP.NET 应用程序 AWS Toolkit for Visual Studio
<a name="aspnet-quickstart-deploy"></a>

按照以下步骤创建 Elastic Beanstalk 环境并将新应用程序部署到其中。

**创建环境和部署 ASP.NET 应用程序**

1. 在**解决方案资源管理器**中，右键单击您的应用程序，然后选择**发布到 AWS Elastic Beanstalk**。

1. 为新的 Elastic Beanstalk 应用程序和环境选择一个名称。

1. 除此之外，您可以继续使用 Elastic Beanstalk 提供的默认设置，或根据您的喜好修改任何选项和设置。

1. 在**检查**页上，选择**部署**。这将打包您的 ASP.NET Web 应用程序并将其部署到 Elastic Beanstalk。

   Elastic Beanstalk 大约需要五分钟来创建您的环境。Elastic Beanstalk 部署功能将监控您的环境，直到部署了新代码的环境变得可用为止。在 **Env:<**environment name**>** 选项卡上，您将看到环境的状态。

## 步骤 4：在 Elastic Beanstalk 上运行应用程序
<a name="aspnet-quickstart-run-eb-ap"></a>

当创建环境的过程完成时，**Env:<**environment name**>** 选项卡将显示有关您的环境和应用程序的信息，包括启动应用程序的域 URL。在此选项卡上选择此 URL 或将其复制并粘贴到您的 Web 浏览器中。

恭喜您！您已使用 Elastic Beanstalk 部署了 ASP.NET 应用程序！

## 第 5 步：清理
<a name="aspnet-quickstart-cleanup"></a>

应用程序使用完毕时，您可以在 AWS Toolkit for Visual Studio中终止您的环境。

**终止环境**

1. 在 **AWS Explorer** 中，展开 Elastic Beanstalk 节点和应用程序节点。右键单击应用程序环境，选择 **Terminate Environment**（终止环境）。

1. 当系统提示时，选择**是**以确认要终止该环境。Elastic Beanstalk 需要几分钟才能 AWS 终止在环境中运行的资源。

## AWS 您的应用程序的资源
<a name="aspnet-quickstart-eb-resources"></a>

您刚刚创建了一个单实例应用程序。它可用作带有单个 EC2 实例的简单示例应用程序，因此不需要负载平衡或自动扩缩。对于单实例应用程序，Elastic Beanstalk 会创建以下资源： AWS 
+ **EC2 实例** - 配置来在您选择的平台上运行 Web 应用程序的 Amazon EC2 虚拟机。

  各平台运行一组不同的软件、配置文件和脚本以支持特定的语言版本、框架、Web 容器或其组合。大多数平台使用 Apache 或 nginx 作为在 Web 应用程序前处理 Web 流量的反向代理，向其转发请求、提供静态资产以及生成访问和错误日志。
+ **实例安全组** - 配置为允许端口 80 上的传入流量的 Amazon EC2 安全组。通过此资源，HTTP 流量可以从负载均衡器到达运行您的 Web 应用程序的 EC2 实例。默认情况下，其他端口不允许流量进入。
+ **Amazon S3 存储桶** – 使用 Elastic Beanstalk 时创建的源代码、日志和其他构件的存储位置。
+ **Amazon CloudWatch CloudWatch 警**报 — 两个警报，用于监控您环境中实例的负载，并在负载过高或过低时触发。警报触发后，您的 Auto Scaling 组会扩展或收缩以进行响应。
+ **CloudFormation 堆栈** — Elastic CloudFormation Beanstalk 用于在您的环境中启动资源并传播配置更改。这些资源在您可通过 [CloudFormation 控制台](https://console.aws.amazon.com/cloudformation)查看的模板中定义。
+  **域名**-以表单形式路由到您的 Web 应用程序的域名**subdomain*。 *region*.elasticbeanstalk.com。*

Elastic Beanstalk 管理所有这些资源。当您终止环境时，Elastic Beanstalk 会终止其包含的所有资源。

## 后续步骤
<a name="aspnet-quickstart-next-steps"></a>

有了运行应用程序的环境以后，您随时可以部署新的应用程序版本或不同的应用程序。部署新应用程序版本非常快，因为不需要配置或重新启动 EC2 实例。您还可以使用 Elastic Beanstalk 控制台探索新环境。有关详细步骤，请参阅本指南*入门*一章中的[探索您的环境](GettingStarted.md#GettingStarted.Explore)。

**尝试更多教程**  
如果您想尝试包含不同示例应用程序的其他教程，请参阅 [QuickStart 适用于 Windows 上的.NET 核心版](dotnet-quickstart.md)。

部署一到两个示例应用程序并准备好开始在本地开发和运行 ASP.NET 应用程序后，请参阅 [设置 .NET 开发环境](dotnet-devenv.md) 

## 使用 Elastic Beanstalk 控制台进行部署
<a name="aspnet-quickstart-console"></a>

您还可以使用 Elastic Beanstalk 控制台来启动示例应用程序。有关详细步骤，请参阅本指南*入门*一章中的[创建示例应用程序](GettingStarted.md#GettingStarted.CreateApp)。