Comment personnaliser mon environnement Elastic Beanstalk en utilisant des hooks de plateforme ?

Lecture de 3 minute(s)
0

Je souhaite personnaliser mon environnement AWS Elastic Beanstalk à l'aide de hooks de plateforme pour créer des scripts personnalisés ou d'autres fichiers exécutables. Je souhaite les déployer sur mes instances Amazon Elastic Compute Cloud (Amazon EC2) exécutées dans l'environnement.

Brève description

Vous pouvez utiliser des hooks de plateforme pour étendre les fonctionnalités de l'environnement Elastic Beanstalk afin d'exécuter des scripts personnalisés et des fichiers exécutables. Elastic Beanstalk peut également exécuter ces hooks au cours des différentes phases provisionnement d'instances.

Remarque : les hooks de plateforme ne sont pas pris en charge sur les versions de la plateforme Amazon Linux AMI (antérieures à Amazon Linux 2).

Il existe deux types de hooks de plateforme :

  • Les hooks de plateforme de déploiement d'applications s'exécutent lors du déploiement d'une application lorsque vous fournissez un nouveau groupe source pour le déploiement. Ils s'exécutent également lorsque la modification que vous avez apportée à la configuration nécessite la résiliation et la recréation de toutes les instances de l'environnement.
  • Les hooks de plate-forme de déploiement de configuration s'exécutent lors d'un déploiement de configuration lorsque les modifications que vous avez apportées à la configuration mettent uniquement à jour les instances d'environnement sans les recréer.

Résolution

Configurer votre répertoire .platform

1.    À la racine de votre groupe d'application, créez un répertoire masqué nommé « .platform/hooks »ou « .platform/confighooks », le premier pour les hooks de plateforme de déploiement d'applications et le second pour les hooks de plateforme de déploiement de configuration.

2.    En fonction de l'étape de provisionnement d'instances à laquelle ils s'exécutent, vous devez placer les fichiers hook dans l'un des sous-répertoires suivants :

  • « prebuild » (avant la création)
  • « predeploy » (avant le déploiement)
  • « postdeploy » (après le déploiement)

Pour identifier les sous-répertoires nécessaires dans votre cas d'utilisation, reportez-vous à la section Extension des plateformes Elastic Beanstalk Linux.

3.    Votre groupe source d'application doit être du type :

~/workspace/my-application/
|-- .platform
    |--hooks
       |--prebuild
          |-- custom-prebuild-script.sh
       |--predeploy
          |-- custom-predeploy-script.sh
       |--postdeploy
          |-- custom-postdeploy-script.sh
|-- .ebextensions
|-- index.php
         `-- styles.css

Spécifier les fichiers hook

Lorsque vous créez les fichiers hook, gardez les informations suivantes à l'esprit :

  • Les fichiers hook peuvent être des fichiers binaires ou script commençant par une ligne « # ! » et contiennent leur chemin d'interpréteur, tel que « #!/bin/bash ». Pour un exemple du contenu d'un fichier script, comme « custom-postdeploy-script.sh », consultez le fichier suivant :
#!/bin/bash
sudo su
cd /var/app/current
echo "Hello from AWS hook" >> 'test.txt'
  • Utilisez « chmod +x » sur votre machine locale pour définir des autorisations d'exécution sur vos fichiers hook. Vous pouvez également utiliser « .ebextensions » pour fournir les autorisations. Consultez l'exemple de fichier suivant :
container_commands:
  01_chmod1:
    command: "chmod +x .platform/hooks/postdeploy/custom-postdeploy-script.sh"

Pour plus d'informations, reportez-vous à la section Comment personnaliser mon environnement Elastic Beanstalk à l'aide de .ebextensions ?

Appliquer les hooks de plateforme à votre application

1.    Créez un groupe source d'application qui inclut les hooks de plate-forme et les fichiers de configuration précédents.

Remarque : les navigateurs de fichiers peuvent masquer les dossiers dont le nom commence par un point, tels que .platform et .ebextensions. Pour les maintenir visibles, placez-les dans la racine de votre groupe d'application lorsque vous créez le groupe source d'application.

2.    Déployez l'application Elastic Beanstalk mise à jour.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an