

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.

# Référence du schéma du manifeste de déploiement
<a name="dotnet-manifest-schema"></a>

Le manifeste de déploiement est un fichier JSON qui définit la manière dont Elastic Beanstalk doit déployer et configurer vos applications Windows. Cette section fournit une référence complète pour toutes les propriétés et options de configuration prises en charge dans le schéma du manifeste.

## Structure du manifeste
<a name="dotnet-manifest-schema-structure"></a>

Le manifeste de déploiement suit un schéma JSON spécifique avec la structure de haut niveau suivante :

**Example Structure de base du manifeste**  

```
{
  "manifestVersion": 1,
  "skipIISReset": false,
  "iisConfig": {
    "websites": [...],
    "appPools": [...]
  },
  "deployments": {
    "msDeploy": [...],
    "aspNetCoreWeb": [...],
    "custom": [...]
  }
}
```

### Propriétés de haut niveau
<a name="dotnet-manifest-schema-top-level"></a>

`manifestVersion` (obligatoire)  
*Type* : nombre  
*Par défaut* : 1  
*Valeurs valides :* 1  
Spécifie la version du schéma du manifeste. Actuellement, seule la version 1 est prise en charge.

`skipIISReset` (facultatif)  
*Type* : valeur booléenne  
*Par défaut :* faux  
Contrôle si IIS est réinitialisé lors des déploiements d'applications. Cet indicateur affecte à la fois les types de `aspNetCoreWeb` déploiement `msDeploy` et les types de déploiement.  
*Comportement :*  
+ *Non spécifié ou `false` (par défaut) :* les réinitialisations IIS sont effectuées lors des opérations d'installation, de désinstallation et de mise à jour. C'est le comportement traditionnel.
+ *`true`:* les réinitialisations IIS sont ignorées lors des opérations de déploiement.
*Avantages :*  
+ *Réduction des temps d'arrêt* : les applications subissent des interruptions de service plus courtes pendant les déploiements.
+ *Déploiements plus rapides* : élimine le temps nécessaire au redémarrage et à la réinitialisation complets d'IIS.
Lors de l'utilisation`skipIISReset`, l'[RestartAppServer](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html)opération effectue une réinitialisation IIS quel que soit ce paramètre d'indicateur.
*Exemple :*  

```
{
  "manifestVersion": 1,
  "skipIISReset": true,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

`deployments` (obligatoire)  
*Type :* objet  
Contient les configurations de déploiement pour vos applications. Cet objet peut inclure `msDeploy``aspNetCoreWeb`, et des types de `custom` déploiement.

`iisConfig` (facultatif)  
*Type :* objet  
Définit les paramètres de configuration IIS à appliquer avant de déployer des applications. Prend en charge la configuration du site Web et du pool d'applications.

## Configuration d'IIS
<a name="dotnet-manifest-schema-iis-config"></a>

Cette `iisConfig` section vous permet de configurer les paramètres IIS avant de déployer vos applications. Cela inclut la configuration de pools d'applications avec des configurations spécifiques et la configuration de sites Web IIS avec des liaisons personnalisées.

### Sites Web IIS
<a name="dotnet-manifest-schema-websites"></a>

Les sites Web IIS vous permettent de configurer des paramètres de site Web personnalisés, notamment des chemins physiques et des liaisons réseau, avant de déployer vos applications.

**Considérations importantes relatives à la création de différents sites Web IIS**  
*Ordre de configuration des sites Web :* les sites Web sont configurés séquentiellement dans l'ordre dans lequel ils apparaissent dans le `websites` tableau. La plateforme traite la configuration de chaque site Web dans l'ordre. Veillez donc à ce que l'ordre soit correct si vous avez des dépendances entre les sites Web.
*Pare-feu et accès aux ports :* seul le port 80 est automatiquement exposé via la configuration par défaut du pare-feu Windows Elastic Beanstalk. Si vous configurez des sites Web pour utiliser des ports non standard, vous devez définir des règles de pare-feu personnalisées par le biais d'ebextensions ou de scripts de déploiement personnalisés pour autoriser l'accès externe à ces ports.

**Example Configuration du site Web**  

```
{
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          },
          {
            "protocol": "https",
            "port": 8443
          }
        ]
      }
    ]
  }
}
```Propriétés du site Web

`name` (obligatoire)  
*Type* : chaîne  
Nom du site Web IIS. Ce nom est utilisé pour identifier le site Web dans le Gestionnaire des services Internet et doit être unique dans la configuration IIS.

`physicalPath` (obligatoire)  
*Type* : chaîne  
Le chemin physique sur le serveur où les fichiers du site Web sont stockés. Ce chemin doit être accessible au processus de travail IIS.

`bindings` (obligatoire)  
*Type* : tableau  
*Nombre minimum d'articles :* 1  
Ensemble de configurations de liaison qui définissent la manière dont le site Web répond aux demandes du réseau. Chaque liaison spécifie un protocole, un port et un nom d'hôte facultatif.

#### Liaisons du site Web
<a name="dotnet-manifest-schema-bindings"></a>

Les liaisons de sites Web définissent les points de terminaison du réseau sur lesquels votre site Web IIS écoutera les demandes entrantes.

`protocol` (obligatoire)  
*Type* : chaîne  
*Valeurs valides :* « http », « https »  
Protocole utilisé pour la liaison.

`port` (obligatoire)  
*Type* : entier  
*Plage valide : 1-65535*  
Numéro de port sur lequel le site Web écoutera les demandes.

`hostName` (facultatif)  
*Type* : chaîne  
Le nom d'hôte (nom de domaine) pour la liaison.

### Pools d'applications
<a name="dotnet-manifest-schema-app-pools"></a>

Les pools d'applications isolent les applications et vous permettent de configurer les paramètres d'exécution pour des groupes d'applications.

**Example Configuration du pool d'applications**  

```
{
  "iisConfig": {
    "appPools": [
      {
        "name": "MyAppPool",
        "enable32Bit": false,
        "managedPipelineMode": "Integrated",
        "managedRuntimeVersion": "v4.0",
        "queueLength": 1000,
        "cpu": {
          "limitPercentage": 80,
          "limitAction": "Throttle",
          "limitMonitoringInterval": 5
        },
        "recycling": {
          "regularTimeInterval": 1440,
          "requestLimit": 10000,
          "memory": 1048576,
          "privateMemory": 524288
        }
      }
    ]
  }
}
```Propriétés du pool d'applications

`name` (obligatoire)  
*Type* : chaîne  
Nom du pool d'applications. Ce nom est utilisé pour faire référence au pool dans les configurations de déploiement.

`enable32Bit` (facultatif)  
*Type* : valeur booléenne  
Permet à une application 32 bits de s'exécuter sur une version 64 bits de Windows. Définissez cette option `true` pour les applications existantes qui nécessitent une compatibilité 32 bits.

`managedPipelineMode` (facultatif)  
*Type* : chaîne  
*Valeurs valides :* « Intégré », « Classique »  
Spécifie le mode de traitement des demandes pour le pool d'applications.

`managedRuntimeVersion` (facultatif)  
*Type* : chaîne  
*Valeurs valides :* « Aucun code géré », « v2.0 », « v4.0 »  
Spécifie la version du .NET Framework pour le pool d'applications.

`queueLength` (facultatif)  
*Type* : entier  
Nombre maximal de demandes que HTTP.sys met en file d'attente pour le pool d'applications avant de rejeter les demandes supplémentaires.

#### Configuration du processeur
<a name="dotnet-manifest-schema-cpu-config"></a>

L'`cpu`objet configure les limites d'utilisation du processeur et la surveillance du pool d'applications.

`limitPercentage` (facultatif)  
*Type* : nombre  
Pourcentage maximal de temps processeur que les processus de travail peuvent consommer dans le pool d'applications.

`limitAction` (facultatif)  
*Type* : chaîne  
*Valeurs valides :* "NoAction«, « KillW3WP », « Throttle », "» ThrottleUnderLoad  
Action à entreprendre lorsque la limite du processeur est atteinte.

`limitMonitoringInterval` (facultatif)  
*Type* : nombre  
Période de réinitialisation (en minutes) pour la surveillance du processeur et les limites de régulation.

#### Configuration du recyclage
<a name="dotnet-manifest-schema-recycling-config"></a>

L'`recycling`objet configure quand et comment les processus de travail du pool d'applications sont recyclés.

`regularTimeInterval` (facultatif)  
*Type* : entier  
Intervalle de temps (en minutes) après lequel le pool d'applications recycle. Réglez sur 0 pour désactiver le recyclage basé sur le temps.

`requestLimit` (facultatif)  
*Type* : entier  
Nombre maximal de demandes traitées par le pool d'applications avant le recyclage.

`memory` (facultatif)  
*Type* : entier  
Quantité de mémoire virtuelle (en kilo-octets) qui déclenche le recyclage des processus de travail.

`privateMemory` (facultatif)  
*Type* : entier  
Quantité de mémoire privée (en kilo-octets) qui déclenche le recyclage des processus de travail.

## Types de déploiement
<a name="dotnet-manifest-schema-deployments"></a>

L'`deployments`objet contient des tableaux de configurations de déploiement pour différents types d'applications. Chaque type de déploiement possède des propriétés et des cas d'utilisation spécifiques.

### MSDeploy déploiements
<a name="dotnet-manifest-schema-msdeploy"></a>

MSDeploy les déploiements sont utilisés pour les applications .NET Framework traditionnelles qui peuvent être déployées à l'aide de Web Deploy (MSDeploy).

**Example MSDeploy configuration de déploiement**  

```
{
  "deployments": {
    "msDeploy": [
      {
        "name": "WebApp",
        "description": "Main web application",
        "parameters": {
          "appBundle": "webapp.zip",
          "iisPath": "/",
          "appPool": "DefaultAppPool"
        }
      }
    ]
  }
}
```MSDeploy propriétés de déploiement

`name` (obligatoire)  
*Type* : chaîne  
Nom unique pour le déploiement. Ce nom doit être unique pour tous les déploiements du manifeste.

`description` (facultatif)  
*Type* : chaîne  
Description lisible par l'homme du déploiement.

`parameters` (obligatoire)  
*Type :* objet  
Paramètres de configuration de l' MSDeploy opération.

`scripts` (facultatif)  
*Type :* objet  
PowerShell scripts à exécuter à différentes étapes du cycle de vie du déploiement.

#### MSDeploy paramètres
<a name="dotnet-manifest-schema-msdeploy-parameters"></a>

`appBundle` (obligatoire)  
*Type* : chaîne  
Chemin d'accès au bundle d'applications (fichier ZIP) relatif au fichier manifeste. Ce bundle contient les fichiers d'application à déployer.

`iisWebSite` (facultatif)  
*Type* : chaîne  
*Par défaut :* « Site Web par défaut »  
Le site Web IIS sur lequel déployer l'application. Par défaut, les applications sont déployées sur le « site Web par défaut ». Vous pouvez éventuellement spécifier un autre nom de site Web, tel que celui configuré dans la `iisConfig.websites` section.

`iisPath` (facultatif)  
*Type* : chaîne  
*Par défaut :* «/»  
Chemin du répertoire virtuel dans IIS où l'application sera déployée. Utilisez «/» pour le chemin racine ou « /api » pour un sous-répertoire.

`appPool` (facultatif)  
*Type* : chaîne  
Nom du pool d'applications pour exécuter cette application.

### Déploiements ASP.NET Core
<a name="dotnet-manifest-schema-aspnetcore"></a>

Les déploiements ASP.NET Core sont spécialement conçus pour les applications .NET Core et .NET 5\$1.

**Example Configuration du déploiement d'ASP.NET Core**  

```
{
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "CoreAPI",
        "description": "ASP.NET Core Web API",
        "parameters": {
          "appBundle": "coreapi.zip",
          "iisPath": "/api",
          "appPool": "CoreAppPool"
        }
      }
    ]
  }
}
```

Les déploiements ASP.NET Core utilisent la même structure de propriétés que MSDeploy les déploiements, la principale différence étant l'environnement d'exécution et le modèle d'hébergement utilisés pour l'application.Paramètres de déploiement d'ASP.NET Core

`appBundle` (obligatoire)  
*Type* : chaîne  
Chemin d'accès au bundle d'applications relatif au fichier manifeste. Il peut s'agir d'une archive ZIP ou d'un chemin de répertoire contenant l'application ASP.NET Core publiée.

`iisWebSite` (facultatif)  
*Type* : chaîne  
*Par défaut :* « Site Web par défaut »  
Le site Web IIS sur lequel déployer l'application ASP.NET Core. Par défaut, les applications sont déployées sur le « site Web par défaut ». Vous pouvez éventuellement spécifier un autre nom de site Web, tel que celui configuré dans la `iisConfig.websites` section.

`iisPath` (facultatif)  
*Type* : chaîne  
*Par défaut :* «/»  
Chemin du répertoire virtuel dans IIS pour l'application ASP.NET Core.

`appPool` (facultatif)  
*Type* : chaîne  
Pool d'applications pour l'application ASP.NET Core. Le pool sera configuré de manière appropriée pour l'hébergement ASP.NET Core.

### Déploiements personnalisés
<a name="dotnet-manifest-schema-custom"></a>

Les déploiements personnalisés permettent de contrôler totalement le processus de déploiement par le biais de PowerShell scripts. Ce type de déploiement est utile pour les scénarios complexes qui nécessitent une installation, une configuration ou une logique de déploiement personnalisées.

**Example Configuration de déploiement personnalisée**  

```
{
  "deployments": {
    "custom": [
      {
        "name": "CustomService",
        "description": "Custom Windows service deployment",
        "architecture": 32,
        "scripts": {
          "install": {
            "file": "install-service.ps1"
          },
          "restart": {
            "file": "restart-service.ps1"
          },
          "uninstall": {
            "file": "uninstall-service.ps1",
            "ignoreErrors": true
          }
        }
      }
    ]
  }
}
```Propriétés de déploiement personnalisées

`name` (obligatoire)  
*Type* : chaîne  
Nom unique pour le déploiement personnalisé.

`description` (facultatif)  
*Type* : chaîne  
Description du déploiement personnalisé.

`architecture` (facultatif)  
*Type* : entier  
*Par défaut :* 32  
*Valeurs valides :* 32, 64  
La spécification d'architecture pour le mode d'exécution des scripts PowerShell

`scripts` (obligatoire)  
*Type :* objet  
PowerShell des scripts qui définissent le comportement de déploiement. Les déploiements personnalisés prennent en charge des types de scripts supplémentaires par rapport aux autres types de déploiement.

## Scripts de déploiement
<a name="dotnet-manifest-schema-scripts"></a>

Les scripts de déploiement sont PowerShell des scripts qui s'exécutent à des moments spécifiques du cycle de vie du déploiement. Les différents types de déploiement prennent en charge différents ensembles d'événements de script.

### Événements liés au script
<a name="dotnet-manifest-schema-script-events"></a>

Les événements de script suivants sont disponibles en fonction du type de déploiement :Scripts de déploiement standard (MSDeploy et aspNetCore Web)

`preInstall`  
S'exécute avant l'installation ou la mise à jour de l'application.

`postInstall`  
S'exécute après l'installation ou la mise à jour de l'application.

`preRestart`  
S'exécute avant le redémarrage de l'application.

`postRestart`  
S'exécute après le redémarrage de l'application.

`preUninstall`  
S'exécute avant la désinstallation de l'application.

`postUninstall`  
S'exécute après la désinstallation de l'application.Scripts de déploiement personnalisés (déploiements personnalisés uniquement)

`install`  
Script d'installation principal pour les déploiements personnalisés. Ce script est responsable de l'installation de l'application ou du service.

`restart`  
Script pour redémarrer l'application ou le service. Appelé au redémarrage de l'environnement.

`uninstall`  
Script permettant de désinstaller l'application ou le service. Appelé lors de la fermeture de l'environnement ou de la suppression d'une application.

### Propriétés du script
<a name="dotnet-manifest-schema-script-properties"></a>

Chaque script est défini comme un objet doté des propriétés suivantes :

`file` (obligatoire)  
*Type* : chaîne  
Chemin d'accès au fichier de PowerShell script relatif au fichier manifeste. Le script doit avoir une `.ps1` extension.

`ignoreErrors` (facultatif)  
*Type* : valeur booléenne  
*Par défaut :* faux  
Lorsque ce paramètre est défini sur`true`, le déploiement se poursuit même si le script échoue. Utilisez-le pour des scripts ou des opérations de nettoyage non critiques.

**Example Exemple de configuration de script**  

```
{
  "scripts": {
    "preInstall": {
      "file": "backup-config.ps1",
      "ignoreErrors": true
    },
    "postInstall": {
      "file": "configure-app.ps1"
    }
  }
}
```