Personnalisation du logiciel sur des serveurs Windows - 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.

Personnalisation du logiciel sur des serveurs Windows

Vous pouvez souhaiter personnaliser et configurer le logiciel dont dépend votre application. Ces fichiers pourraient être soit des dépendances requises par l'application, par exemple, des services ou des packages supplémentaires qui doivent être exécutés. Pour obtenir des informations générales sur la personnalisation et la configuration de vos environnements Elastic Beanstalk, consultez Configuration d'environnements Elastic Beanstalk.

Note

YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.

Les fichiers de configuration prennent en charge les clés suivantes qui affectent le serveur Windows sur lequel votre application s'exécute.

Les clés sont traitées dans l'ordre dans lequel elles sont répertoriées ici.

Note

Des versions antérieures (sans version) des versions de plateforme .NET ne traitent pas les fichiers de configuration dans l'ordre correct. Découvrez-en plus sur Migration entre les principales versions de la plateforme Windows Server pour Elastic Beanstalk.

Observez les événements de votre environnement pendant le développement et les tests des fichiers de configuration. Elastic Beanstalk ignore un fichier de configuration qui contient des erreurs de validation, comme une clé non valide, et ne traite aucune autre clé dans le même fichier. Lorsque cela se produit, Elastic Beanstalk ajoute un événement d'avertissement dans le journal des événements.

Packages

Utilisez la clé packages pour télécharger, et installer des applications et des composants prépackagés.

Dans les environnements Windows, Elastic Beanstalk prend en charge le téléchargement et l'installation des packages MSI. (Les environnements Linux prennent en charge d'autres gestionnaires de packages. Pour plus d'informations, consultez Packagessur la page Personnalisation des logiciels sur les serveurs Linux.)

Vous pouvez faire référence à des emplacements externes, comme un objet Amazon Simple Storage Service (Amazon S3), tant que l'URL est publiquement accessible.

Si vous spécifiez plusieurs packages msi:, leur ordre d'installation n'est pas garanti.

Syntaxe

Spécifiez le nom de votre choix comme nom du package et une URL vers un emplacement de fichier MSI comme valeur. Vous pouvez spécifier plusieurs packages sous la clé msi:.

packages: msi: package name: package url ...

Exemples

L'exemple suivant indique une URL permettant de télécharger mysql à partir https://dev.mysql.com/.

packages: msi: mysql: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.11.msi

L'exemple suivant indique un objet Amazon S3 comme emplacement de fichier MSI.

packages: msi: mymsi: https://mybucket.s3.amazonaws.com/myobject.msi

Sources

Utilisez la clé sources pour télécharger un fichier d'archives à partir d'une URL publique et le décompresser dans un répertoire cible de l'instance EC2.

Syntaxe

sources: target directory: location of archive file

Formats pris en charge

Dans les environnements Windows, Elastic Beanstalk prend en charge le format .zip. (Les environnements Linux prennent en charge d'autres formats. Pour plus d'informations, consultez Sources sur la page Personnalisation des logiciels sur les serveurs Linux.)

Vous pouvez faire référence à des emplacements externes, comme un objet Amazon Simple Storage Service (Amazon S3), tant que l'URL est publiquement accessible.

Exemple

L'exemple suivant télécharge un fichier .zip public à partir d'un compartiment Amazon S3 et le décompresse dans c:/myproject/myapp.

sources: "c:/myproject/myapp": https://mybucket.s3.amazonaws.com/myobject.zip

Dépôt de

Utilisez la clé files pour créer des fichiers sur l'instance EC2. Le contenu peut être en ligne dans le fichier de configuration, ou issu d'une URL. Les fichiers sont écrits sur disque par ordre lexicographique. Pour télécharger des fichiers privés depuis Amazon S3, fournissez un profil d'instance pour l'autorisation.

Syntaxe

files: "target file location on disk": source: URL authentication: authentication name: "target file location on disk": content: | this is my content encoding: encoding format

Options

content

(Facultatif) Une chaîne.

source

(Facultatif) L'URL à partir de laquelle le fichier est chargé. Cette option ne peut pas être spécifiée avec la clé de contenu.

encoding

(Facultatif) Le format d'encodage. Cette option est utilisée uniquement pour une valeur de clé de contenu fournie. La valeur par défaut est plain.

Valeurs valides : plain | base64

authentication

(Facultatif) Nom d'une méthode d'authentification AWS CloudFormation à utiliser. Vous pouvez ajouter des méthodes d'authentification aux métadonnées du groupe Auto Scaling via la clé Resources.

Exemples

L'exemple suivant illustre les deux manières de fournir un contenu d'un fichier : depuis une URL, ou en ligne dans le fichier de configuration.

files: "c:\\targetdirectory\\targetfile.txt": source: http://foo.bar/myfile "c:/targetdirectory/targetfile.txt": content: | # this is my file # with content
Note

Si vous utilisez une barre oblique inverse (\) dans votre chemin d'accès, vous devez la faire précéder d'une autre barre oblique inverse (caractère d'échappement), comme illustré dans l'exemple précédent.

L'exemple suivant utilise la clé Resources pour ajouter une méthode d'authentification nommée S3Auth et l'utilise pour télécharger un fichier privé à partir d'un compartiment Amazon S3 :

files: "c:\\targetdirectory\\targetfile.zip": source: https://elasticbeanstalk-us-east-2-123456789012.s3.amazonaws.com/prefix/myfile.zip authentication: S3Auth Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" buckets: ["elasticbeanstalk-us-east-2-123456789012"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role"

Commandes

Utilisez la clé commands pour exécuter des commandes sur l'instance EC2. Les commandes sont traitées dans l'ordre alphabétique par nom et elles s'exécutent avant la configuration de l'application et du serveur web, avant que le fichier de version d'application soit extrait.

Les commandes spécifiées s'exécutent en tant qu'utilisateur Administrateur.

Pour résoudre les problèmes associés à vos commandes, vous pouvez trouver leur sortie dans les journaux d'instance.

Syntaxe

commands: command name: command: command to run

Options

command

Soit un tableau, soit une chaîne spécifiant la commande à exécuter. Si vous utilisez un tableau, vous n'avez pas besoin de caractères d'espacement ou d'inclure des paramètres de commande entre guillemets.

cwd

(Facultatif) Le répertoire de travail. Par défaut, Elastic Beanstalk tente de trouver l'emplacement du répertoire de votre projet. S'il ne le trouve pas, il utilise c:\Windows\System32 comme valeur par défaut.

env

(Facultatif) Définit des variables d'environnement pour la commande. Cette propriété remplace, plutôt que d'ajouter, l'environnement existant.

ignoreErrors

(Facultatif) Valeur booléenne qui détermine si les autres commandes doivent s'exécuter si la commande contenue dans la clé command échoue (renvoie une valeur non nulle). Définissez cette valeur sur true si vous voulez continuer à exécuter des commandes même si la commande échoue. Définissez-la sur false si vous souhaitez arrêter l'exécution des commandes si la commande échoue. La valeur par défaut est false.

test

(Facultatif) Commande qui doit renvoyer la valeur true (code de sortie 0) afin qu'Elastic Beanstalk traite la commande contenue dans la clé command.

waitAfterCompletion

(Facultatif) Secondes d'attente une fois que la commande est terminée avant d'exécuter la commande suivante. Si le système a besoin d'un redémarrage une fois la commande terminée, le système redémarre une fois le nombre de secondes spécifié écoulé. Si le système redémarre suite à une commande, Elastic Beanstalk récupère jusqu'au moment qui suit la commande dans le fichier de configuration. La valeur par défaut est de 60 secondes. Vous pouvez également spécifier forever, mais le système doit redémarrer avant que vous puissiez exécuter une autre commande.

Exemple

L'exemple suivant enregistre la sortie de la commande set dans le fichier spécifié. S'il existe une commande suivante, Elastic Beanstalk exécute cette commande immédiatement à la fin de cette commande. Si cette commande exige un redémarrage, Elastic Beanstalk redémarre l'instance immédiatement à la fin de la commande.

commands: test: command: set > c:\\myapp\\set.txt waitAfterCompletion: 0

Services

Utilisez la clé services pour définir les services qui doivent être démarrés ou arrêtés lors du lancement de l'instance. La clé services vous permet également de spécifier des dépendances sur des sources, des packages et des fichiers de sorte que si un redémarrage est nécessaire en raison d'une installation de fichiers, Elastic Beanstalk prenne en charge le redémarrage du service.

Syntaxe

services: windows: name of service: files: - "file name" sources: - "directory" packages: name of package manager: "package name[: version]" commands: - "name of command"

Options

ensureRunning

(Facultatif) Définissez cette option sur true afin de garantir que le service s'exécute après qu'Elastic Beanstalk a terminé.

Définissez cette option sur false afin de garantir que le service ne s'exécute pas après qu'Elastic Beanstalk a terminé.

Ignorez cette clé pour n'apporter aucune modification à l'état du service.

enabled

(Facultatif) Définissez cette option sur true afin de garantir que le service soit démarré automatiquement lors du démarrage.

Définissez cette option sur false afin de garantir que le service ne soit pas démarré automatiquement lors du démarrage.

Ignorez cette clé pour n'apporter aucune modification à cette propriété.

files

Liste de fichiers. Si Elastic Beanstalk en change un directement via le bloc de fichiers, le service est redémarré.

sources

Liste de répertoires. Si Elastic Beanstalk développe une archive dans l'un de ces répertoires, le service est redémarré.

packages

Une carte du gestionnaire de package sur une liste de noms de package. Si Elastic Beanstalk installe ou met à jour l'un de ces packages, le service est redémarré.

commands

Liste de noms de commandes. Si Elastic Beanstalk exécute la commande spécifiée, le service est redémarré.

Exemple

services: windows: myservice: enabled: true ensureRunning: true

Commandes de conteneur

Utilisez la clé container_commands pour exécuter des commandes qui affectent le code source de votre application. Les commandes de conteneur s'exécutent après que l'application et le serveur web ont été configurés et que l'archive de version d'application a été extraite, mais avant que la version d'application soit déployée. Les commandes non-conteneur et autres opérations de personnalisation sont effectuées avant le code source d'application en cours d'extraction.

Les commandes de conteneur sont exécutées depuis le répertoire intermédiaire, où votre code source est extrait avant d'être déployé sur le serveur d'applications. Toutes les modifications apportées à votre code source dans le répertoire intermédiaire avec une commande conteneur seront incluses lorsque la source est déployée sur son emplacement final.

Pour résoudre les problèmes associés à vos commandes de conteneur, vous pouvez trouver leur sortie dans les journaux d'instance.

Utilisez l'option leader_only pour exécuter uniquement la commande sur une seule instance, ou configurer un test pour exécuter uniquement la commande lorsqu'une commande test a la valeur true. Les commandes de conteneur principales uniquement sont exécutées uniquement au cours de la création et du déploiement de l'environnement, tandis que d'autres commandes et opérations de personnalisation de serveur sont effectuées chaque fois qu'une instance est mise en service ou mise à jour. Les commandes de conteneur principales uniquement ne sont pas exécutées pour lancer des modifications de configuration, par exemple, une modification d'ID d'AMI ou de type d'instance.

Syntaxe

container_commands: name of container_command: command: command to run

Options

command

Une chaîne ou un tableau de chaînes à exécuter.

env

(Facultatif) Définissez les variables d'environnement avant d'exécuter la commande, en ignorant toute valeur existante.

cwd

(Facultatif) Le répertoire de travail. Par défaut, il s'agit du répertoire intermédiaire de l'application décompressée.

leader_only

(Facultatif) Exécutez uniquement la commande sur une seule instance choisie par Elastic Beanstalk. Les commandes de conteneur principales uniquement sont exécutées avant d'autres commandes de conteneur. Une commande peut être principale uniquement ou disposer d'un test, mais pas les deux (leader_only a la priorité).

test

(Facultatif) Exécutez une commande test qui doit renvoyer la valeur true afin d'exécuter la commande de conteneur. Une commande peut être principale uniquement ou disposer d'un test, mais pas les deux (leader_only a la priorité).

ignoreErrors

(Facultatif) Ne manquez pas les déploiements si la commande de conteneur renvoie une valeur différente de 0 (réussite). Définissez sur true pour activer.

waitAfterCompletion

(Facultatif) Secondes d'attente une fois que la commande est terminée avant d'exécuter la commande suivante. Si le système a besoin d'un redémarrage une fois la commande terminée, le système redémarre une fois le nombre de secondes spécifié écoulé. Si le système redémarre suite à une commande, Elastic Beanstalk récupère jusqu'au moment qui suit la commande dans le fichier de configuration. La valeur par défaut est de 60 secondes. Vous pouvez également spécifier forever, mais le système doit redémarrer avant que vous puissiez exécuter une autre commande.

Exemple

L'exemple suivant enregistre la sortie de la commande set dans le fichier spécifié. Elastic Beanstalk exécute la commande sur une instance et redémarre l'instance immédiatement à la fin de la commande.

container_commands: foo: command: set > c:\\myapp\\set.txt leader_only: true waitAfterCompletion: 0