Bereitstellen von ASP.NET Web Forms-Anwendungen auf AWS - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bereitstellen von ASP.NET Web Forms-Anwendungen auf AWS

Pakete verwalten NuGet

NuGet ist ein Repository, das Codepakete für.NET enthält und verwaltet. In einer Anwendung können zwei Arten von NuGet Paketen installiert sein: öffentlich verfügbare Pakete von nuget.org oder benutzerdefinierte Pakete, die in einem internen Repository veröffentlicht werden. Das Herunterladen von Paketen von nuget.org setzt voraus, dass die Instanzen, die die Anwendung erstellen, über ausgehenden Internetzugang verfügen. Für einige Benutzer ist ein Internetzugang aufgrund von Sicherheitsbedenken oder Netzwerkeinschränkungen möglicherweise nicht wünschenswert.

Um dieses Problem zu lösen, können Sie ein verwaltetes Artifact (NuGet) -Repository bereitstellen, um Pakete von externen Quellen wie nuget.org herunterzuladen. Sie können AWS CodeArtifact diesen vollständig verwalteten Artefakt-Repository-Service als Paket-Repository verwenden. NuGet Weitere Informationen finden Sie im AWS Blogbeitrag Using NuGet with AWS CodeArtifact. Andere beliebte Optionen von Drittanbietern sind Nexus und Artifactory. Dieser Ansatz ermöglicht es Ihnen, öffentlich verfügbare Pakete in Ihrem privaten Repository zwischenzuspeichern und reduziert den Bedarf an direktem Internetzugang während des Build-Prozesses. Wenn Sie mehr Kontrolle darüber haben möchten, welche Pakete heruntergeladen werden können, können Sie den externen Zugriff deaktivieren. In diesem Fall müssen Entwickler sowohl ihre eigenen NuGet Pakete als auch alle anderen Pakete von Drittanbietern, die sie benötigen, in das Repository übertragen.

Um Ihre Anwendung für die Verwendung des NuGet Paket-Repositorys zu konfigurieren, erstellen Sie eine NuGet.config Datei im Projektstammverzeichnis oder Lösungsstammverzeichnis. Diese Datei gibt die Paketquellen an, die beim Wiederherstellen von Paketen verwendet werden NuGet sollen. Das folgende Beispiel zeigt, wie die zu NuGet.config verwendende Datei konfiguriert wird 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>

In diesem Beispiel https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json ersetzen Sie es durch die tatsächliche URL Ihres CodeArtifact Repositorys. Sie finden diese URL auf der CodeArtifact Konsole oder indem Sie den aws codeartifact get-repository-endpoint Befehl ausführen.

Wichtig
  • Die Konfiguration der NuGet.config Datei wirkt sich auf alle Projekte innerhalb derselben Verzeichnisstruktur aus. Wenn Sie unterschiedliche Paketquellen für verschiedene Projekte verwenden möchten, erstellen Sie separate NuGet.config Dateien für jedes Projekt oder jede Lösung.

  • Stellen Sie sicher, dass die Instanzen, die die Anwendung erstellen, über die erforderlichen Berechtigungen und Netzwerkzugriff verfügen, um eine Verbindung zum NuGet Paket-Repository herzustellen (z. B. CodeArtifact). Weitere Informationen zum Abrufen von Anmeldeinformationen finden Sie in der Dokumentation unter Verwenden CodeArtifact mit der Nuget- oder Dotnet-CLI. CodeArtifact

Eine Anwendung erstellen

Wenn Sie ältere ASP.NET Web Forms-Anwendungen zu migrieren AWS, verwenden Sie weiterhin die Microsoft Build Engine (MSBuild) als zentrales Tool für die Erstellung der Anwendungen. MSBuild ist normalerweise mit Visual Studio gebündelt, aber Sie können die eigenständige MSBuild ausführbare Datei von Microsoft herunterladen und verwenden, ohne Visual Studio zu installieren. Dieser Ansatz ist besonders nützlich, wenn Sie Ihre Web Forms-Anwendung darauf aufbauen AWS, wo Sie Windows-Instanzen oder Docker-Container mit MSBuild installiertem Betriebssystem verwenden können.

Zum Erstellen einer ASP.NET Web Forms-Anwendung sind zwei Hauptschritte erforderlich: das Wiederherstellen der NuGet Pakete und das Erstellen der Anwendung. Die Einzelheiten der Ausführung dieser Schritte können je nach dem CI/CD-Tool, das Sie verwenden, variieren. Wenn Sie beispielsweise verwenden AWS CodeBuild, wird der Build-Prozess in einem Docker-Container ausgeführt.

Pakete wiederherstellen NuGet

Bevor Sie Ihre Anwendung erstellen, müssen Sie die für das Projekt benötigten NuGet Pakete wiederherstellen. Sie können dazu entweder Befehle MSBuild oder Befehle der NuGet Befehlszeilenschnittstelle (CLI) verwenden, die im Stammverzeichnis des Projekts ausgeführt werden.

Verwenden von MSBuild:

msbuild -t:restore

Verwenden von NuGet CLI:

nuget restore

Erstellen Sie mit MSBuild

Nachdem Sie die NuGet Pakete wiederhergestellt haben, können Sie mit dem Haupt-Build-Befehl fortfahren, der die Bereitstellungsartefakte erzeugt. Der Befehl gibt in der Regel die Projektdatei, die Build-Konfiguration (z. B.Release) und das Ausgabeverzeichnis für die erstellten Artefakte an.

msbuild <ProjectName>.csproj /p:Configuration=Release /p:OutDir=<OutDir>

Weitere Informationen zu MSBuild Optionen finden Sie in der MSBuild Befehlszeilenreferenz in der Microsoft-Dokumentation.

Weitere Informationen zum Erstellen einer ASP.NET-Anwendung mit AWS CodeBuild finden Sie im AWS Blogbeitrag Erstellen von CI/CD-Pipelines für ASP.NET 4.x mit und. AWS CodePipeline AWS Elastic Beanstalk

Eine Anwendung bereitstellen

Nachdem Sie Ihre Web Forms-Anwendung erstellt haben, stellen Sie die Artefakte in der Zielumgebung auf bereit AWS. In den meisten Szenarien können Sie die erstellten Artefakte komprimieren und zur einfachen Verteilung und Bereitstellung in einen Amazon Simple Storage Service (Amazon S3) -Bucket hochladen. Anweisungen finden Sie in der Amazon S3 S3-Dokumentation.

Es gibt zwei Hauptoptionen für die Bereitstellung der Artefakte auf einer EC2 Amazon-Instance: manuell und automatisiert.

Manuelle Bereitstellung

Bei dieser Option werden die Benutzerdaten der EC2 Instanz verwendet, um Skripts einzubinden, die die folgenden Aufgaben ausführen:

  • Installieren Sie Internetinformationsdienste (IIS)

  • Die Build-Artefakte aus dem Amazon S3 S3-Bucket abrufen und entpacken

  • Erstellen und konfigurieren Sie die IIS-Anwendung

Dieser Ansatz bietet zwar Flexibilität, erfordert jedoch manuelles Eingreifen und kann schwierig zu verwalten sein, wenn Ihre Anwendung skaliert oder häufig aktualisiert wird.

Automatisierte Bereitstellung

Der empfohlene Ansatz ist die Verwendung AWS CodeDeployfür automatisierte und wiederholbare Bereitstellungen. CodeDeploy lässt sich nahtlos in andere Anwendungen AWS-Services wie AWS CodeBuild und integrieren AWS CodePipeline, sodass Sie vollständige CI/CD pipeline for your ASP.NET Web Forms application. With CodeDeploy, you can define deployment strategies such as rolling and blue/green Updates erstellen können, um minimale Ausfallzeiten und reibungslose Übergänge zwischen Anwendungsversionen zu gewährleisten.

Weitere Informationen und Beispiele zum Einrichten von CI/CD-Pipelines für ASP.NET Web Forms-Anwendungen mithilfe von CodePipeline CodeBuild, und CodeDeploy finden Sie im AWS Blogbeitrag Erstellen von CI/CD-Pipelines für ASP.NET 4.x mit und. AWS CodePipeline AWS Elastic Beanstalk

Mithilfe von AWS-Services wie CodeBuild CodeDeploy, und können Sie die Erstellungs- und CodePipeline Bereitstellungsprozesse für Ihre migrierten ASP.NET Web Forms-Anwendungen optimieren und konsistente und zuverlässige Bereitstellungen in der Infrastruktur sicherstellen. AWS

Weitere Informationen zu automatisierten Bereitstellungen finden Sie im AWS Blogbeitrag Generieren von CI/CD-Pipelines für containerisierte ASP.NET-Anwendungen mithilfe von AWS App2Container und in den Informationen zum Aufbau einer CI/CD-Pipeline für ältere .NET Framework-Anwendungen in re:POST. AWS