Déploiements personnalisés ASP.NET Core Elastic Beanstalk - AWS Boîte à outils avec Amazon Q

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éploiements personnalisés ASP.NET Core Elastic Beanstalk

Cette rubrique décrit le mode de fonctionnement et de personnalisation du déploiement lors de la création d'applications ASP.NET Core avec Elastic Beanstalk et Toolkit for Visual Studio.

Après avoir exécuté l'assistant de déploiement dans la Toolkit for Visual Studio, la boîte à outils groupe l'application et l'envoie à Elastic Beanstalk. La première étape de la création d’une solution groupée d'applications consiste à utiliser la nouvelle interface de ligne de commande dotnet afin de préparer l'application pour la publication à l'aide de la commande publish. L'infrastructure et la configuration sont transmises depuis les paramètres de l'assistant vers la commande publish. Ainsi, si vous avez sélectionné Publier pour configuration et netcoreapp1.0 pour framework, la boîte à outils exécute la commande suivante :

dotnet publish --configuration Release --framework netcoreapp1.0

Lorsque la commande publish est terminée, la boîte à outils écrit le nouveau manifeste de déploiement dans le dossier de publication. Le manifeste de déploiement est un fichier JSON nomméaws-windows-deployment-manifest.json, que le conteneur Elastic Beanstalk Windows (version 1.2 ou supérieure) lit pour identifier le mode de déploiement de l'application. Par exemple, pour une application ASP.NET Core que vous souhaitez déployer à la racine d'IIS, la boîte à outils génère un fichier manifeste semblable à ce qui suit :

{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "app", "parameters": { "appBundle": ".", "iisPath": "/", "iisWebSite": "Default Web Site" } } ] } }

La propriété appBundle indique l'endroit où les bits de l'application sont en lien avec le fichier manifeste. Cette propriété peut pointer vers un annuaire ou une archive ZIP. Les propriétés iisPath et iisWebSite indiquent l'endroit où héberger l'application dans IIS.

Personnalisation du manifeste

La boîte à outils écrit uniquement le fichier manifeste s'il n'existe pas déjà dans le dossier de publication. Si le fichier existe, la boîte à outils met à jour les propriétés appBundle, iisPath et iisWebSite dans la première application répertoriée sous la section aspNetCoreWeb du manifeste. Cela vous permet d'ajouter aws-windows-deployment-manifest.json à votre projet et de personnaliser le manifeste. Par exemple, pour une application web ASP.NET Core dans Visual Studio, ajoutez un nouveau fichier JSON à la racine du projet et nommez-le aws-windows-deployment-manifest.json.

Le manifeste doit être nommé aws-windows-deployment-manifest.json et il doit se trouver à la racine du projet. Le conteneur Elastic Beanstalk recherche le manifeste dans la racine et s'il le trouve, il appelle les outils de déploiement. Si le fichier n'existe pas, le conteneur Elastic Beanstalk utilise les anciens outils de déploiement, ce qui suppose que l'archive estmsDeployArchive.

Pour veiller à ce que la commande publish de l'interface de ligne de commande dotnet inclut le manifeste, mettez à jour le fichier project.json pour y inclure le fichier manifeste dans la section inclure sous include dans publishOptions.

{ "publishOptions": { "include": [ "wwwroot", "Views", "Areas/**/Views", "appsettings.json", "web.config", "aws-windows-deployment-manifest.json" ] } }

Maintenant que vous avez déclaré le manifeste de façon à ce qu'il soit inclus dans la solution groupée d'applications, vous pouvez configurer la façon dont vous souhaitez déployer l'application. Vous pouvez personnaliser le déploiement au-delà de ce que l'assistant de déploiement prend en charge.AWSa défini un schéma JSON pour laaws-windows-deployment-manifest.json, et lorsque vous avez installé Toolkit for Visual Studio, la configuration a enregistré l'URL pour le schéma.

Lorsque vous ouvrez windows-deployment-manifest.json, vous voyez l'URL du schéma sélectionnée dans la zone déroulante Schema. Vous pouvez accéder à l'URL pour obtenir une description complète de ce qui peut être défini dans le manifeste. Avec le schéma sélectionné, Visual Studio met à disposition IntelliSense pendant que vous modifiez le manifeste.

Vous pouvez procéder à une personnalisation en configurant le groupe d'applications IIS sous lequel l'application sera exécutée. L'exemple suivant montre comment vous pouvez définir un groupe d'applications IIS (« customPool ») qui recycle le processus toutes les 60 minutes, et l'attribuer à l'application à l'aide de "appPool": "customPool".

{ "manifestVersion": 1, "iisConfig": { "appPools": [ { "name": "customPool", "recycling": { "regularTimeInterval": 60 } } ] }, "deployments": { "aspNetCoreWeb": [ { "name": "app", "parameters": { "appPool": "customPool" } } ] } }

De plus, le manifeste peut déclarer des scripts Windows PowerShell pour qu'ils s'exécutent avant et après l'installation, redémarrent et désinstallent des actions. Par exemple, le manifeste suivant exécute le script Windows PowerShell PostInstallSetup.ps1 pour poursuivre la configuration après le déploiement de l'application ASP.NET Core sur IIS. Lorsque vous ajoutez des scripts de ce type, veillez à ce qu'ils soient ajoutés dans la section inclure sous publishOptions dans le fichier project.json, comme vous l'aviez fait avec le fichier aws-windows-deployment-manifest.json. Sinon, les scripts ne seront pas inclus dans le cadre de la commande publish de l'interface de ligne de commande dotnet.

{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "app", "scripts": { "postInstall": { "file": "SetupScripts/PostInstallSetup.ps1" } } } ] } }

Qu'en est-il des .ebextensions ?

Le haricot Elastic Beanstalk.ebextensionsLes fichiers de configuration sont pris en charge comme dans tous les autres conteneurs Elastic Beanstalk. Pour inclure des .ebextensions dans une application ASP.NET Core, ajoutez l'annuaire .ebextensions à la section include sous publishOptions dans le fichier project.json. Pour plus d'informations sur les .ebextensions, consultez le Manuel du développeur Elastic Beanstalk.