Déploiement d'applications ASP.NET Web Forms sur AWS - AWS Directives prescriptives

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déploiement d'applications ASP.NET Web Forms sur AWS

Gestion des NuGet packages

NuGet est un référentiel qui contient et gère des packages de code pour .NET. Deux types de NuGet packages peuvent être installés sur une application : des packages accessibles au public provenant de nuget.org ou des packages personnalisés publiés dans un référentiel interne. Pour extraire des packages depuis nuget.org, les instances qui créent l'application doivent disposer d'un accès Internet sortant. Pour certains utilisateurs, l'accès à Internet peut ne pas être souhaitable en raison de problèmes de sécurité ou de restrictions du réseau.

Pour résoudre ce problème, vous pouvez configurer un référentiel d'artefacts géré (NuGet) pour télécharger des packages à partir de sources externes telles que nuget.org. Vous pouvez l'utiliser AWS CodeArtifact, qui est un service de référentiel d'artefacts entièrement géré, comme référentiel de NuGet packages. Pour plus d'informations, consultez le billet de AWS blog Utiliser NuGet avec AWS CodeArtifact. Les autres options tierces populaires incluent Nexus et Artifactory. Cette approche vous permet de mettre en cache des packages accessibles au public dans votre référentiel privé et de réduire le besoin d'un accès direct à Internet pendant le processus de création. Si vous souhaitez mieux contrôler les packages qui peuvent être téléchargés, vous pouvez désactiver l'accès externe. Dans ce cas, les développeurs devront transférer leurs propres NuGet packages et tout autre package tiers dont ils ont besoin vers le référentiel.

Pour configurer votre application afin qu'elle utilise le référentiel de NuGet packages, créez un NuGet.config fichier dans le répertoire racine du projet ou dans le répertoire racine de la solution. Ce fichier indique les sources de packages à utiliser NuGet lors de la restauration des packages. L'exemple suivant montre comment configurer le NuGet.config fichier à utiliser 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>

Dans cet exemple, remplacez https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json par l'URL réelle de votre CodeArtifact dépôt. Vous pouvez trouver cette URL sur la CodeArtifact console ou en exécutant la aws codeartifact get-repository-endpoint commande.

Important
  • La configuration du NuGet.config fichier affecte tous les projets au sein de la même structure de répertoire. Si vous souhaitez utiliser différentes sources de package pour différents projets, créez des NuGet.config fichiers distincts pour chaque projet ou solution.

  • Assurez-vous que les instances qui créent l'application disposent des autorisations et de l'accès réseau nécessaires pour se connecter au référentiel de NuGet packages (par exemple CodeArtifact). Pour plus d'informations sur l'obtention d'informations d'identification, consultez la section Utiliser CodeArtifact avec la CLI nuget ou dotnet dans la CodeArtifact documentation.

Création d'une application

Lorsque vous migrez des applications ASP.NET Web Forms héritées vers AWS, vous continuez à utiliser le Microsoft Build Engine (MSBuild) comme outil central pour créer les applications. MSBuild est généralement fourni avec Visual Studio, mais vous pouvez télécharger et utiliser le MSBuild fichier exécutable autonome de Microsoft sans installer Visual Studio. Cette approche est particulièrement utile lorsque vous créez votre application Web Forms sur AWS laquelle vous pouvez utiliser des instances Windows ou des conteneurs Docker MSBuild installés.

Deux étapes principales sont nécessaires pour créer une application ASP.NET Web Forms : la restauration des NuGet packages et la création de l'application. Les détails relatifs à l'exécution de ces étapes peuvent varier en fonction de l'outil CI/CD que vous choisissez d'utiliser. Par exemple, si vous utilisez AWS CodeBuild, le processus de construction est exécuté dans un conteneur Docker.

Restaurer NuGet les packages

Avant de créer votre application, vous devez restaurer les NuGet packages requis par le projet. Vous pouvez le faire en utilisant l'une MSBuild ou l'autre des commandes de l'interface de ligne de NuGet commande (CLI), exécutées dans le répertoire racine du projet.

En utilisant MSBuild :

msbuild -t:restore

À l'aide de la NuGet CLI :

nuget restore

Construire en utilisant MSBuild

Après avoir restauré les NuGet packages, vous pouvez exécuter la commande de construction principale qui produit les artefacts de déploiement. La commande spécifie généralement le fichier de projet, la configuration de construction (par exemple,Release) et le répertoire de sortie pour les artefacts créés.

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

Pour plus d'informations sur les MSBuild options, consultez la référence de MSBuild la ligne de commande dans la documentation Microsoft.

Pour plus d'informations sur la création d'une application ASP.NET avec AWS CodeBuild, consultez le billet de AWS blog Création de pipelines CI/CD pour ASP.NET 4.x avec et. AWS CodePipeline AWS Elastic Beanstalk

Déploiement d'une application

Après avoir créé votre application Web Forms, vous déployez les artefacts dans l'environnement cible sur AWS. Dans la plupart des scénarios, vous pouvez compresser et télécharger les artefacts intégrés dans un compartiment Amazon Simple Storage Service (Amazon S3) pour une distribution et un déploiement faciles. Pour obtenir des instructions, consultez la documentation Amazon S3.

Il existe deux options principales pour déployer les artefacts sur une EC2 instance Amazon : manuelle et automatisée.

Déploiement manuel

Cette option implique l'utilisation des données utilisateur de l' EC2 instance pour inclure des scripts qui exécuteront les tâches suivantes :

  • Installation des services Internet (IIS)

  • Extrayez et décompressez les artefacts de construction du compartiment Amazon S3

  • Création et configuration de l'application IIS

Bien que cette approche apporte de la flexibilité, elle nécessite une intervention manuelle et peut devenir difficile à gérer à mesure que votre application évolue ou si elle fait l'objet de mises à jour fréquentes.

Déploiement automatique

L'approche recommandée consiste à l'utiliser AWS CodeDeploypour des déploiements automatisés et répétables. CodeDeploy s'intègre parfaitement à d'autres solutions Services AWS telles que AWS CodeBuild et AWS CodePipeline, afin que vous puissiez créer des CI/CD pipeline for your ASP.NET Web Forms application. With CodeDeploy, you can define deployment strategies such as rolling and blue/green mises à jour complètes afin de garantir un minimum de temps d'arrêt et des transitions fluides entre les versions de l'application.

Pour plus d'informations et des exemples sur la configuration de pipelines CI/CD pour les applications ASP.NET Web Forms en utilisant CodePipeline, et CodeBuild CodeDeploy, consultez le billet de AWS blog Création de pipelines CI/CD pour ASP.NET 4.x avec et. AWS CodePipeline AWS Elastic Beanstalk

En utilisant Services AWS tels que CodeBuild, et CodeDeploy CodePipeline, vous pouvez rationaliser les processus de création et de déploiement de vos applications ASP.NET Web Forms migrées et garantir des déploiements cohérents et fiables sur l'infrastructure. AWS

Pour plus d'informations sur les déploiements automatisés, consultez le billet de AWS blog Génération de pipelines CI/CD pour les applications ASP.NET conteneurisées à l'aide AWS App2Container et les informations sur la création d'un pipeline CI/CD pour les applications .NET Framework existantes dans Re:post. AWS