本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本 QuickStart 教程将引导你完成在 Windows 应用程序上创建.NET Core 并将其部署到 AWS Elastic Beanstalk 环境的过程。
注意
本 QuickStart 教程仅用于演示目的。请勿将本教程中创建的应用程序用于生产流量。
Sections
你的 AWS 账户
如果您还不是 AWS 客户,则需要创建一个 AWS 帐户。注册后,您就可以访问 Elastic Beanstalk AWS 和其他所需的服务。
如果您已经有一个 AWS 帐户,则可以继续前进先决条件。
注册获取 AWS 账户
如果您没有 AWS 账户,请完成以下步骤来创建一个。
报名参加 AWS 账户
打开https://portal.aws.amazon.com/billing/注册。
按照屏幕上的说明操作。
在注册时,将接到电话,要求使用电话键盘输入一个验证码。
当您注册时 AWS 账户,就会创建AWS 账户根用户一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 https://aws.amazon.com/
创建具有管理访问权限的用户
注册后,请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center,启用并创建管理用户,这样您就不会使用 root 用户执行日常任务。
保护你的 AWS 账户根用户
-
选择 Root 用户并输入您的 AWS 账户 电子邮件地址,以账户所有者的身份登录。AWS Management Console
在下一页上,输入您的密码。 要获取使用根用户登录方面的帮助,请参阅《AWS 登录 用户指南》中的 Signing in as the root user。
-
为您的根用户启用多重身份验证(MFA)。
有关说明,请参阅 I A M 用户指南中的为 AWS 账户 根用户启用虚拟 MFA 设备(控制台)。
创建具有管理访问权限的用户
-
启用 IAM Identity Center。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Enabling AWS IAM Identity Center。
-
在 IAM Identity Center 中,为用户授予管理访问权限。
有关使用 IAM Identity Center 目录 作为身份源的教程,请参阅《用户指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户访问权限。
以具有管理访问权限的用户身份登录
-
要使用您的 IAM Identity Center 用户身份登录,请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录网址。
有关使用 IAM Identity Center 用户登录的帮助,请参阅AWS 登录 用户指南中的登录 AWS 访问门户。
将访问权限分配给其他用户
-
在 IAM Identity Center 中,创建一个权限集,该权限集遵循应用最低权限的最佳做法。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Create a permission set。
-
将用户分配到一个组,然后为该组分配单点登录访问权限。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Add groups。
先决条件
为了遵循本指南中的步骤,您需要命令行终端或 Shell,以便运行命令。命令显示在列表中,前面带有提示符(>)和当前目录的名称(如果适用)。
C:\eb-project> this is a command
this is output
EB CLI
本教程使用 Elastic Beanstalk 命令行界面 (EB CLI)。有关安装和配置 EB CLI 的详细信息,请参阅 安装 Elastic Beanstalk 命令行界面 和 配置 EB CLI。
.NET Core on Windows
如果您的本地计算机上尚未安装 .NET SDK,则可以按照 .NET 文档
通过运行以下命令来验证您的 .NET SDK 安装。
C:\> dotnet --info
步骤 1:创建 .NET Core on Windows 应用程序
创建项目目录。
C:\> mkdir eb-dotnetcore
C:\> cd eb-dotnetcore
接下来,通过运行以下命令创建一个示例 Hello RESTful World Web 服务应用程序。
C:\eb-dotnetcore>
dotnet new web --name HelloElasticBeanstalk
C:\eb-dotnetcore>cd HelloElasticBeanstalk
步骤 2:在本地运行应用程序
运行以下命令以在本地运行您的应用程序。
C:\eb-dotnetcore\HelloElasticBeasntalk> dotnet run
输出应类似于以下文本。
info: Microsoft.Hosting.Lifetime[14]
Now listening on: https://localhost:7222
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5228
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\Users\Administrator\eb-dotnetcore\HelloElasticBeanstalk
注意
在本地运行应用程序时,dotnet
命令会随机选择一个端口。在此示例中,端口为 5228。当您将应用程序部署到 Elastic Beanstalk 环境时,该应用程序将在端口 5000 上运行。
在您的网络浏览器中输入 URL 地址 http://localhost:
。对于这个具体的示例,命令是 port
http://localhost:5228
。Web 浏览器应显示“Hello World!”。
步骤 3:使用 EB CLI 部署 .NET Core on Windows 应用程序
运行以下命令为此应用程序创建 Elastic Beanstalk 环境。
创建环境并部署 .NET Core on Windows 应用程序
-
在
HelloElasticBeanstalk
目录中运行以下命令来发布和压缩应用程序。C:\eb-dotnetcore\HelloElasticBeasntalk>
dotnet publish -o site
C:\eb-dotnetcore\HelloElasticBeasntalk>cd site
C:\eb-dotnetcore\HelloElasticBeasntalk\site>Compress-Archive -Path * -DestinationPath ../site.zip
C:\eb-dotnetcore\HelloElasticBeasntalk\site>cd ..
-
在
HelloElasticBeanstalk
中创建一个名为aws-windows-deployment-manifest.json
包含以下内容的新文件:{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "test-dotnet-core", "parameters": { "appBundle": "site.zip", "iisPath": "/", "iisWebSite": "Default Web Site" } } ] } }
-
使用 eb init 命令,初始化 EB CLI 存储库。
C:\eb-dotnetcore\HelloElasticBeasntalk>
eb init -p iis dotnet-windows-server-tutorial --region
us-east-2
此命令将创建名为
dotnet-windows-server-tutorial
的应用程序,并配置本地存储库,以创建具有最新 Windows Server 平台版本的环境。 -
创建环境并使用 eb create 将应用程序部署到此环境中。Elastic Beanstalk 会自动为您的应用程序生成一个 zip 文件,并在端口 5000 上启动该文件。
C:\eb-dotnetcore\HelloElasticBeasntalk>
eb create dotnet-windows-server-env
Elastic Beanstalk 大约需要五分钟来创建您的环境。
步骤 4:在 Elastic Beanstalk 上运行应用程序
当创建环境的过程完成后,使用 eb open 打开您的网站。
C:\eb-dotnetcore\HelloElasticBeasntalk> eb open
恭喜您!您已使用 Elastic Beanstalk 部署了 .NET Core on Windows 应用程序!这将使用为应用程序创建的域名打开一个浏览器窗口。
第 5 步:清理
应用程序使用完毕时,您可以终止您的环境。Elastic Beanstalk AWS 会终止与您的环境关联的所有资源。
要使用 EB CLI 终止您的 Elastic Beanstalk 环境,请运行以下命令。
C:\eb-dotnetcore\HelloElasticBeasntalk> eb terminate
AWS 您的应用程序的资源
您刚刚创建了一个单实例应用程序。它是一个简单的示例应用程序,只有一个 EC2 实例,因此不需要负载平衡或 auto Scaling。对于单实例应用程序,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 组会扩展或收缩以进行响应。
-
AWS CloudFormation 堆栈 — Elastic AWS CloudFormation Beanstalk 用于在您的环境中启动资源并传播配置更改。这些资源在您可通过 AWS CloudFormation 控制台
查看的模板中定义。 -
域名-以表单形式路由到您的 Web 应用程序的域名
subdomain
。region
.elasticbeanstalk.com。
Elastic Beanstalk 管理所有这些资源。当您终止环境时,Elastic Beanstalk 会终止其包含的所有资源。
后续步骤
有了运行应用程序的环境以后,您随时可以部署新的应用程序版本或不同的应用程序。部署新应用程序版本的速度非常快,因为它不需要预置或重启 EC2 实例。您还可以使用 Elastic Beanstalk 控制台探索新环境。有关详细步骤,请参阅本指南入门一章中的探索您的环境。
尝试更多教程
如果您想尝试包含不同示例应用程序的其他教程,请参阅 QuickStart 适用于ASP.NET。
部署一到两个示例应用程序并准备好开始在本地开发和运行 .NET Core on Windows 应用程序后,请参阅 设置 .NET 开发环境
使用 Elastic Beanstalk 控制台进行部署
您还可以使用 Elastic Beanstalk 控制台来启动示例应用程序。有关详细步骤,请参阅本指南入门一章中的创建示例应用程序。