本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在上部署 ASP.NET Web 表单应用程序 AWS
管理 NuGet 软件包
NuGet 是一个包含和管理.NET 代码包的存储库。应用程序可以安装两种类型的 NuGet 软件包:来自 nuget.org
要解决此问题,您可以配置托管工件 (NuGet) 存储库,以便从外部来源(例如 nuget.org)下载软件包。您可以将 AWS CodeArtifact(一种完全托管的工件存储库服务)用作 NuGet 包存储库。有关更多信息,请参阅 AWS 博客文章 Using w NuGet ith AWS CodeArtifact
要将应用程序配置为使用 NuGet 软件包存储库,请在项目根目录或解决方案根目录中创建一个NuGet.config
文件。此文件指定了恢复软件包时 NuGet 应使用的软件包来源。以下示例说明如何配置要使用的NuGet.config
文件 CodeArtifact:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageRestore> <!-- Allow NuGet to download missing packages --> <add key="enabled" value="True" /> <!-- Automatically check for missing packages during build in Visual Studio --> <add key="automatic" value="True" /> </packageRestore> <packageSources> <add key="MyRepo" value="https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json" /> </packageSources> </configuration>
在此示例中,https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json
替换为 CodeArtifact 存储库的实际 URL。您可以在CodeArtifact 控制台aws codeartifact get-repository-endpoint
命令来找到此 URL。
重要
-
配置
NuGet.config
文件会影响同一目录结构中的所有项目。如果要为不同的项目使用不同的包源,请为每个项目或解决方案创建单独的NuGet.config
文件。 -
确保构建应用程序的实例具有连接到 NuGet 软件包存储库所需的权限和网络访问权限(例如 CodeArtifact)。有关获取凭证的更多信息,请参阅文档中的 CodeArtifact CodeArtifact与 nuget 或 dotnet CLI 配合使用。
构建应用程序
将旧版 ASP.NET Web Forms 应用程序迁移到时 AWS,可以继续使用 Microsoft 构建引擎 (MSBuild) 作为构建应用程序的中心工具。 MSBuild 通常与 Visual Studio 捆绑在一起,但你无需安装 Visual Studio 即可从微软下载和使用独立 MSBuild 的可执行文件。当你在其上构建 Web 表单应用程序时,这种方法特别有用 AWS,你可以在其中使用 MSBuild 已安装的 Windows 实例或 Docker 容器。
构建 ASP.NET Web Forms 应用程序需要两个主要步骤:恢复 NuGet 软件包和生成应用程序。这些步骤的执行方式可能因您选择使用的 CI/CD 工具而异。例如,如果您使用 AWS CodeBuild,则生成过程将在 Docker 容器内执行。
恢复 NuGet 软件包
在构建应用程序之前,必须恢复项目所需的 NuGet 软件包。您可以使用在项目根目录中执行 MSBuild 的 NuGet 命令行界面 (CLI) 命令来执行此操作。
使用 MSBuild:
msbuild -t:restore
使用 NuGet CLI:
nuget restore
使用构建 MSBuild
恢复 NuGet 软件包后,您可以继续执行生成部署工件的主构建命令。该命令通常会指定项目文件、生成配置(例如Release
)和已生成工件的输出目录。
msbuild <ProjectName>.csproj /p:Configuration=Release /p:OutDir=<OutDir>
有关 MSBuild 选项的更多信息,请参阅 Microsoft 文档中的MSBuild 命令行参考
有关使用构建 ASP.NET 应用程序的更多信息 AWS CodeBuild,请参阅 AWS 博客文章使用和为 ASP.NET 4.x 创建 CI/CD 管道
部署应用程序
构建 Web Forms 应用程序后,将构件部署到上的目标环境 AWS。在大多数情况下,您可以将构建的项目压缩并上传到亚马逊简单存储服务 (Amazon S3) 存储桶,以便于分发和部署。有关说明,请参阅 Amazon S3 文档。
将项目部署到 Amazon EC2 实例有两个主要选项:手动和自动。
手动部署
此选项涉及使用 EC2 实例用户数据来包含将执行以下任务的脚本:
-
安装互联网信息服务 (IIS)
-
从 Amazon S3 存储桶中提取并解压缩构建工件
-
创建和配置 IIS 应用程序
尽管这种方法提供了灵活性,但它需要手动干预,并且随着应用程序的扩展或频繁的更新,管理起来可能会变得困难。
自动部署
推荐的方法是AWS CodeDeploy
有关使用、和为 ASP.NET Web Forms 应用程序设置 CI/CD 管道的更多信息和示例 CodePipeline CodeBuild CodeDeploy,请参阅 AWS 博客文章使用和为 ASP.NET 4.x 创建 CI/CD 管道
通过使用 AWS 服务 诸如 CodeBuild CodeDeploy CodePipeline、和,您可以简化已迁移的 ASP.NET Web Forms 应用程序的构建和部署流程,并确保向 AWS 基础架构部署一致且可靠。
有关自动部署的更多信息,请参阅 re: Post 中的 AWS 博客文章使用为容器化 ASP.NET 应用程序生成 CI/CD 管道, AWS App2Container以及有关为传统.NET Framework 应用程序