AWS Toolkit for Visual Studio
用户指南

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

将传统 ASP.NET 应用程序部署到 Elastic Beanstalk

此部分说明如何使用 Publish to Elastic Beanstalk 向导(作为 Toolkit for Visual Studio 的一部分提供)通过 Elastic Beanstalk 部署应用程序。要进行练习,您可使用 Visual Studio 中内置的 Web 应用程序初学者项目的实例,也可使用您自己的项目。

注意

本主题描述如何使用此向导部署传统 ASP.NET 应用程序。此向导还支持部署 ASP.NET 内核应用程序。有关 ASP.NET 内核的信息,请参阅将 ASP.NET 内核应用程序部署到 Elastic Beanstalk

注意

您必须先下载并安装 Web Deploy,然后才能使用 Publish to Elastic Beanstalk 向导。此向导依赖 Web Deploy 将 Web 应用程序和网站部署到 Internet Information Services (IIS) Web 服务器。

创建示例 Web 应用程序初学者项目#

  1. 在 Visual Studio 中,从 File 菜单中,选择 New,然后选择 Project

  2. New Project 对话框的导航窗格中,依次展开 InstalledTemplatesVisual C#,然后选择 Web

  3. 在 Web 项目模板的列表中,选择其说明中包含 WebApplication 字样的任何模板。在本示例中,请选择 ASP.NET Web Forms Application

    _images/tkv-new-web-project-console.png
  4. Name (名称) 框中,键入 AEBWebAppDemo

  5. Location 框中,键入您的开发计算机上的解决方案文件夹的路径或选择 Browse,然后浏览并选择解决方案文件夹,再选择 Select Folder

  6. 确认选中了 Create directory for solution 框。在 Solution 下拉列表中,确认已选择 Create new solution,然后选择 OK。Visual Studio 将基于 ASP.NET Web 表单应用程序项目模板创建解决方案和项目。随后,Visual Studio 将显示解决方案资源管理器,其中将显示新的解决方案和项目。

    _images/tkv-web-app-solution-explorer-console.png

使用 Publish to Elastic Beanstalk 向导部署应用程序#

  1. 在解决方案资源管理器中,为您在上一部分中创建的项目打开 AEBWebAppDemo 项目文件夹的上下文(右键单击)菜单,或为您自己的应用程序打开此项目文件夹的上下文菜单,然后选择 Publish to AWS

    _images/tkv-publish-to-aws-console.png

    随即显示 Publish to Elastic Beanstalk 向导。

    _images/tkv-aeb-wizard-app-console.png
  2. Profile 中,从 Account profile to use for deployment 下拉列表中选择要用于部署的 AWS 账户配置文件。

    (可选) 如果您有要使用的 AWS 账户,但尚未为其创建 AWS 账户配置文件,则可选择带加号 (+) 的按钮来添加 AWS 账户配置文件。

  3. Region 下拉列表中,选择希望 Elastic Beanstalk 将应用程序部署到的区域。

  4. Deployment Target 中,您可选择 Create a new application environment 执行应用程序的初始部署或选择 Redeploy to an existing environment 重新部署之前已部署的应用程序。(之前的部署可能是使用向导或独立部署工具执行的。)如果您选择 Redeploy to an existing environment,则当向导从当前正在运行的之前的部署中检索信息时可能会出现延迟。

    注意

    如果您选择 Redeploy to an existing environment,再选择列表中的环境,然后选择 Next,则向导会将您定向至 Application Options 页面。如果您执行此过程,请向前跳至此部分中后面描述如何使用 Application Options 页面的说明。

  5. 选择 Next

    _images/tkv-aeb-wizard-env-console.png
  6. Application Environment 页面上的 Application 区域中,Name 下拉列表将为应用程序建议默认名称。您可通过选择此下拉列表中的其他名称来更改默认名称。

  7. Environment 区域的 Name 下拉列表中,为您的 Elastic Beanstalk 环境键入一个名称。在此上下文中,术语环境 指您的应用程序的基础设施 Elastic Beanstalk 预置。此下拉列表中可能已建议默认名称。如果未建议默认名称,您可键入一个名称或从下拉列表中选择一个名称(如果提供了任何其他名称)。环境名称的长度不得超过 23 个字符。

  8. URL 区域中,此框会建议将作为您的 Web 应用程序 URL 的默认子域 .elasticbeanstalk.com。您可键入新的子域名来更改默认子域。

  9. 选择 Check availability 以确保您的 Web 应用程序 URL 未在使用中。

  10. 如果您的 Web 应用程序 URL 可以使用,请选择 Next

_images/tkv-aeb-wizard-ec2-console.png
  1. AWS Options 页面上的 Amazon EC2 Launch Configuration 中,从 Container type 下拉列表中,选择将用于您的应用程序的 Amazon 系统映像 (AMI) 类型。

  2. Instance type 下拉列表中,指定要使用的 Amazon EC2 实例类型。在本示例中,我们建议您使用 Micro。这将最大程度降低相关的实例运行成本。有关 Amazon EC2 成本的更多信息,请转到 EC2 定价页面。

  3. Key pair 下拉列表中,选择要用于登录到将用于您的应用程序的实例的 Amazon EC2 实例密钥对。

  4. (可选)在 Use custom AMI 框中,您可指定将覆盖 Container type 下拉列表中指定的 AMI 的自定义 AMI。有关如何创建自定义 AMI 的更多信息,请转到 Elastic Beanstalk 开发人员指南中的使用自定义 AMI从 Amazon EC2 实例创建 AMI

  5. (可选)如果您要在 VPC 中启动实例,请选中 Use a VPC 框。

  6. (可选)如果您要启动单个 Amazon EC2 实例,然后将应用程序部署到该实例,请选中 Single instance environment 框。

    如果您选中此框,Elastic Beanstalk 仍将创建 Auto Scaling 组,但不会配置它。如果您希望稍后配置 Auto Scaling 组,则可使用 AWS 管理控制台。

  7. (可选)如果您希望控制将应用程序部署到实例时的条件,请选中 Enable Rolling Deployments 框。只能在未选中 Single instance environment 框时选中此框。

  8. 如果您的应用程序使用 AWS 服务(如 Amazon S3 和 DynamoDB),则提供凭证的最佳方式是使用 IAM 角色。在 Deployed Application Permissions 区域中,您可选择现有 IAM 角色或创建一个供向导用来启动环境的角色。使用适用于 .NET 的 AWS 开发工具包的应用程序在请求 AWS 服务时将自动使用此 IAM 角色提供的凭证。

  9. 如果您的应用程序访问 Amazon RDS 数据库,请在 Relational Database Access 区域的下拉列表中,选中向导将更新的任何 Amazon RDS 安全组旁的框,以便您的 Amazon EC2 实例可访问此数据库。

  10. 选择 Next

    • 如果您已选择 Use a VPC,则将显示 VPC Options 页面。
    • 如果您已选择 Enable Rolling Deployments,但未选择 Use a VPC,则将显示 Rolling Deployments 页面。向前跳至此部分中后面描述如何使用 Rolling Deployments 页面的说明。
    • 如果您未选择 Use a VPCEnable Rolling Deployments,则将显示 Application Options 页面。向前跳至此部分中后面描述如何使用 Application Options 页面的说明。
  11. 如果您已选择 Use a VPC,请在 VPC Options 页面上指定信息以在 VPC 中启动应用程序。

    _images/tkv-aeb-wizard-vpc-console.png

    必须已创建 VPC。如果您已在 Toolkit for Visual Studio 中创建 VPC,则 Toolkit for Visual Studio 将为您填充此页面。如果您已在 AWS 管理控制台中创建 VPC,请在此页面中键入有关您的 VPC 的信息。

针对 VPC 的部署的主要注意事项#

  • 您的 VPC 需要至少一个公有子网和一个私有子网。
  • ELB Subnet 下拉列表中,指定公有子网。Toolkit for Visual Studio 将应用程序的 Elastic Load Balancing 负载均衡器部署到公有子网。公有子网与具有指向 Internet 网关的入口的路由表关联。您可识别 Internet 网关,因为它具有以 igw- 开始的 ID(例如,igw-83cddaex)。您使用 Toolkit for Visual Studio 创建的公有子网具有将其识别为公有的标签值。
  • Instances Subnet 下拉列表中,指定私有子网。Toolkit for Visual Studio 将应用程序的 Amazon EC2 实例部署到私有子网。
  • 应用程序的 Amazon EC2 实例将通过公有子网中的执行网络地址转换 (NAT) 的 Amazon EC2 实例执行从私有子网到 Internet 的通信。要启用此通信,您需要允许流量从私有子网流至 NAT 实例的 VPC 安全组。在 Security Group 下拉列表中,指定此 VPC 安全组。

有关如何将 Elastic Beanstalk 应用程序部署到 VPC 的更多信息,请转到 Elastic Beanstalk 开发人员指南

  1. 在填充 VPC Options 页面上的所有信息后,请选择 Next

    • 如果您已选择 Enable Rolling Deployments,则将显示 Rolling Deployments 页面。
    • 如果您未选择 Enable Rolling Deployments,则将显示 Application Options 页面。向前跳至此部分中后面描述如何使用 Application Options 页面的说明。
  2. 如果您已选择 Enable Rolling Deployments,请在 Rolling Deployments 页面上指定信息以配置新版本的应用程序部署到负载均衡环境中的实例的方式。例如,如果您的环境中有 4 个实例,并且您需要更改实例类型,则可将环境配置为一次更改 2 个实例。这可帮助确保您的应用程序在执行更改时仍处于运行状态。

    _images/tkv-aeb-wizard-rolling-console.png
  3. Application Versions 区域中,选择用于控制一次部署的实例的百分比或数量的选项。指定所需百分比或数量。

  4. (可选)在 Environment Configuration 区域中,如果要指定在部署期间保持运行的实例数量,请选中此框。如果选中此框,请指定一次应修改的实例的最大数目和/或一次应保持运行的实例的最小数目。

  5. 选择 Next

  6. Application Options 页面上,指定有关版本、Internet Information Services (IIS) 和应用程序设置的信息。

    _images/tkv-aeb-wizard-options-console.png
  7. Build and IIS Deployment Settings 区域的 Project build configuration 下拉列表中,选择目标版本配置。如果向导可以找到它,则 Release 将显示,否则此框中将显示有效配置。

  8. App pool 下拉列表中,选择您的应用程序所需的 .NET Framework 版本。应已显示正确的 .NET Framework 版本。

  9. 如果您的应用程序是 32 位的,请选中 Enable 32-bit applications 框。

  10. App path 框中,指定 IIS 将用来部署应用程序的路径。默认情况下,指定 Default Web Site/,它通常会转换为路径 c:\inetpub\wwwroot。如果指定 Default Web Site/ 之外的路径,则向导将在 Default Web Site/ 路径中放置指向您指定的路径的重定向。

  11. Application Settings 区域的 Health check URL 框中,键入要检查的 Elastic Beanstalk URL 以确定您的 Web 应用程序是否仍响应。此 URL 相对于根服务器 URL。默认情况下,已指定根服务器 URL。例如,如果完整 URL 为 example.com/site-is-up.html,则键入 /site-is-up.html

  12. KeyValue 的区域中,可指定要添加到应用程序的 Web.config 文件的任何密钥和值对。

    注意

    您可使用 KeyValue 的区域来指定应用程序应在其下运行的 AWS 凭证,但建议不要这样做。首选方式是在 AWS Options 页面上的 Identity and Access Management Role 下拉列表中指定 IAM 角色。但是,如果您必须使用 AWS 凭证而非 IAM 角色来运行您的应用程序,请在 Key 行中,选择 AWSAccessKey。在 Value 行中,键入访问密钥。对 AWSSecretKey 重复这些步骤。

  13. 选择 Next

    _images/tkv-aeb-wizard-review-console.png
  14. Review 页面上,查看您配置的选项,然后选中 Open environment status window when wizard closes 框。

  15. (可选)您可将部署配置保存到您稍后可与独立部署工具一起使用的文本文件。要保存配置,请选择 Generate AWSDeploy configuration,选择 Choose File,然后指定要将配置保存到的文件。此外,您可在部署完成后将部署配置保存到文本文件中。在 AWS Explorer 中,打开部署的上下文(右键单击)菜单,然后选择 Save Configuration

  16. 如果一切正常,请选择 Deploy

    注意

    部署应用程序时,将向有效账户收取应用程序使用的 AWS 资源所产生的费用。

    有关部署的信息将显示在 Visual Studio 状态栏和 Output 窗口中。该过程可能需要几分钟。部署完成后,Output 窗口中将显示确认消息。

  17. 要删除部署,请在 AWS Explorer 中,展开 Elastic Beanstalk 节点,打开部署的子节点的上下文(右键单击)菜单,然后选择 Delete。此删除过程可能需要几分钟。