Exécution de plusieurs applications etASP. NETapplications principales avec un manifeste de déploiement - AWS Elastic Beanstalk

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.

Exécution de plusieurs applications etASP. NETapplications principales avec un manifeste de déploiement

Vous pouvez utiliser un manifeste de déploiement pour indiquer à Elastic Beanstalk comment déployer votre application. En utilisant cette méthode, vous n'avez pas besoin MSDeploy de générer un bundle source pour un singleASP. NETapplication qui s'exécute sur le chemin racine de votre site Web. À la place, vous pouvez utiliser un fichier manifeste afin d'exécuter plusieurs applications sur différents chemins. Vous pouvez également demander à Elastic Beanstalk de déployer et d'exécuter l'application avec. ASP NETNoyau. Vous pouvez également utiliser un manifeste de déploiement pour configurer un groupe d'applications dans lequel exécuter vos applications.

Les manifestes de déploiement ajoutent un support pour. NETApplications principales d'Elastic Beanstalk. Vous pouvez déployer un. NETApplication Framework sans manifeste de déploiement. Cependant,. NETLes applications principales nécessitent un manifeste de déploiement pour s'exécuter sur Elastic Beanstalk. Lorsque vous utilisez un manifeste de déploiement, vous créez une archive de site pour chaque application, puis vous regroupez les archives du site dans une seconde ZIP archive contenant le manifeste de déploiement.

Les manifestes de déploiement ajoutent également la possibilité d'exécuter plusieurs applications sur des chemins d'accès différents. Un manifeste de déploiement définit un ensemble de cibles de déploiement, chacune dotée d'une archive de site et d'un chemin sur lequel elle IIS doit être exécutée. Par exemple, vous pouvez exécuter un site Web API sur le /api chemin pour répondre aux demandes asynchrones, et une application Web sur le chemin racine qui consomme le. API

Vous pouvez également utiliser un manifeste de déploiement pour exécuter plusieurs applications à l'aide de pools d'applications dans IIS ou Kestrel. Vous pouvez configurer un pool d'applications pour redémarrer régulièrement vos applications, exécuter des applications 32 bits ou utiliser une version spécifique du. NETRuntime du framework.

Pour une personnalisation complète, vous pouvez écrire vos propres scripts de déploiement sous Windows PowerShell et indiquer à Elastic Beanstalk les scripts à exécuter pour installer, désinstaller et redémarrer votre application.

Les manifestes de déploiement et les fonctionnalités associées requièrent une plateforme Windows Server version 1.2.0 ou ultérieure.

. NETapplications principales

Vous pouvez utiliser un manifeste de déploiement pour exécuter. NETApplications de base sur Elastic Beanstalk. . NETCore est une version multiplateforme de. NETqui est fourni avec un outil de ligne de commande (dotnet). Vous pouvez l'utiliser pour générer une application, l'exécuter localement et la préparer en vue de sa publication.

Pour exécuter un. NETApplication principale sur Elastic Beanstalk, vous dotnet publish pouvez exécuter et empaqueter le résultat ZIP dans une archive, sans inclure les répertoires qui les contiennent. Placez l'archive de site dans un bundle de fichiers source avec un manifeste de déploiement, avec une cible de déploiement de type aspNetCoreWeb.

Le manifeste de déploiement suivant exécute un. NETApplication principale à partir d'une archive de site nommée dotnet-core-app.zip sur le chemin racine.

Exemple aws-windows-deployment-manifest.json -. NETnoyau
{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "my-dotnet-core-app", "parameters": { "archive": "dotnet-core-app.zip", "iisPath": "/" } } ] } }

Regroupez le manifeste et l'archive du site dans une ZIP archive pour créer un ensemble de sources.

Exemple dotnet-core-bundle.zip
. |-- aws-windows-deployment-manifest.json `-- dotnet-core-app.zip

L'archive de site contient le code d'application compilé, les dépendances et le fichier web.config.

Exemple dotnet-core-app.zip
. |-- Microsoft.AspNetCore.Hosting.Abstractions.dll |-- Microsoft.AspNetCore.Hosting.Server.Abstractions.dll |-- Microsoft.AspNetCore.Hosting.dll |-- Microsoft.AspNetCore.Http.Abstractions.dll |-- Microsoft.AspNetCore.Http.Extensions.dll |-- Microsoft.AspNetCore.Http.Features.dll |-- Microsoft.AspNetCore.Http.dll |-- Microsoft.AspNetCore.HttpOverrides.dll |-- Microsoft.AspNetCore.Server.IISIntegration.dll |-- Microsoft.AspNetCore.Server.Kestrel.dll |-- Microsoft.AspNetCore.WebUtilities.dll |-- Microsoft.Extensions.Configuration.Abstractions.dll |-- Microsoft.Extensions.Configuration.EnvironmentVariables.dll |-- Microsoft.Extensions.Configuration.dll |-- Microsoft.Extensions.DependencyInjection.Abstractions.dll |-- Microsoft.Extensions.DependencyInjection.dll |-- Microsoft.Extensions.FileProviders.Abstractions.dll |-- Microsoft.Extensions.FileProviders.Physical.dll |-- Microsoft.Extensions.FileSystemGlobbing.dll |-- Microsoft.Extensions.Logging.Abstractions.dll |-- Microsoft.Extensions.Logging.dll |-- Microsoft.Extensions.ObjectPool.dll |-- Microsoft.Extensions.Options.dll |-- Microsoft.Extensions.PlatformAbstractions.dll |-- Microsoft.Extensions.Primitives.dll |-- Microsoft.Net.Http.Headers.dll |-- System.Diagnostics.Contracts.dll |-- System.Net.WebSockets.dll |-- System.Text.Encodings.Web.dll |-- dotnet-core-app.deps.json |-- dotnet-core-app.dll |-- dotnet-core-app.pdb |-- dotnet-core-app.runtimeconfig.json `-- web.config

Exécution de plusieurs applications

Vous pouvez exécuter plusieurs applications à l'aide d'un manifeste de déploiement en définissant plusieurs cibles de déploiement.

Le manifeste de déploiement suivant en configure deux. NETApplications de base. L'WebApiSampleAppapplication implémente un site Web simple API et envoie des requêtes asynchrones sur le /api chemin. L'application DotNetSampleApp est une application Web qui sert les demandes à la racine du chemin d'accès.

Exemple aws-windows-deployment-manifest.json - plusieurs applications
{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "WebAPISample", "parameters": { "appBundle": "WebApiSampleApp.zip", "iisPath": "/api" } }, { "name": "DotNetSample", "parameters": { "appBundle": "DotNetSampleApp.zip", "iisPath": "/" } } ] } }

Un exemple d'application avec plusieurs applications est disponible ici :

Configuration de groupes d'applications

Vous pouvez prendre en charge plusieurs applications dans votre environnement Windows. Vous avez le choix entre deux approches :

  • Vous pouvez utiliser le modèle out-of-process d'hébergement avec le serveur Web Kestrel. Avec ce modèle, vous configurez plusieurs applications pour qu'elles s'exécutent dans un groupe d'applications.

  • Vous pouvez utiliser le modèle d'hébergement en cours, avec lequel vous utilisez plusieurs groupes d'applications pour exécuter plusieurs applications avec une seule application dans chaque groupe. Si vous utilisez un IIS serveur et que vous devez exécuter plusieurs applications, vous devez utiliser cette approche.

Pour configurer Kestrel de façon à exécuter plusieurs applications dans un groupe d'applications, ajoutez hostingModel="OutofProcess" dans le fichier web.config. Considérez les exemples suivants.

Exemple web.config - pour le modèle d'hébergement Kestrel out-of-process
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\CoreWebApp-5-0.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutofProcess" /> </system.webServer> </location> </configuration>
Exemple aws-windows-deployment-manifest.json - applications multiples
{ "manifestVersion": 1, "deployments": {"msDeploy": [ {"name": "Web-app1", "parameters": {"archive": "site1.zip", "iisPath": "/" } }, {"name": "Web-app2", "parameters": {"archive": "site2.zip", "iisPath": "/app2" } } ] } }

IISne prend pas en charge plusieurs applications dans un seul pool d'applications car il utilise le modèle d'hébergement en cours. Par conséquent, vous devez configurer plusieurs applications en affectant chaque application à un groupe d'applications. En d'autres termes, n'affectez qu'une seule application à un groupe d'applications.

Vous pouvez configurer IIS pour utiliser différents pools d'applications dans le aws-windows-deployment-manifest.json fichier. Effectuez les mises à jour suivantes lorsque vous vous référez au fichier exemple suivant :

  • Ajoutez une section iisConfig qui comprend une sous-section appelée appPools.

  • Dans le bloc appPools, répertoriez les groupes d'applications.

  • Dans la section deployments, définissez une section parameters pour chaque application.

  • Pour chaque application, la section parameters spécifie une archive, un chemin d'accès pour l'exécuter et un appPool dans lequel s'exécuter.

Le manifeste de déploiement suivant configure deux groupes d'applications qui redémarrent leur application toutes les 10 minutes. Ils joignent également leurs candidatures à un. NETApplication Web Framework qui s'exécute sur le chemin spécifié.

Exemple aws-windows-deployment-manifest.json : une application par pool d'applications
{ "manifestVersion": 1, "iisConfig": {"appPools": [ {"name": "MyFirstPool", "recycling": {"regularTimeInterval": 10} }, {"name": "MySecondPool", "recycling": {"regularTimeInterval": 10} } ] }, "deployments": {"msDeploy": [ {"name": "Web-app1", "parameters": { "archive": "site1.zip", "iisPath": "/", "appPool": "MyFirstPool" } }, {"name": "Web-app2", "parameters": { "archive": "site2.zip", "iisPath": "/app2", "appPool": "MySecondPool" } } ] } }

Définition de déploiements personnalisés

Pour encore davantage de contrôle, vous pouvez personnaliser entièrement un déploiement d'applications en définissant un déploiement personnalisé.

Le manifeste de déploiement suivant indique à Elastic Beanstalk d'exécuter un script install nommé siteInstall.ps1. Ce script installe le site Web pendant le lancement et les déploiements d'instance. En outre, le manifeste de déploiement indique également à Elastic Beanstalk d'uninstallexécuter un script avant d'installer une nouvelle version lors d'un déploiement restart et un script pour redémarrer l'application lorsque vous choisissez Restart App Server dans la console de gestion. AWS

Exemple aws-windows-deployment-manifest.json - déploiement personnalisé
{ "manifestVersion": 1, "deployments": { "custom": [ { "name": "Custom site", "scripts": { "install": { "file": "siteInstall.ps1" }, "restart": { "file": "siteRestart.ps1" }, "uninstall": { "file": "siteUninstall.ps1" } } } ] } }

Incluez les artefacts requis pour exécuter l'application dans le bundle de fichiers source avec le manifeste et les scripts.

Exemple ustom-site-bundleC.zip
. |-- aws-windows-deployment-manifest.json |-- siteInstall.ps1 |-- siteRestart.ps1 |-- siteUninstall.ps1 `-- site-contents.zip