Hooks de plateforme - 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.

Hooks de plateforme

Les hooks de plateforme sont spécifiquement conçus pour étendre la plateforme de votre environnement. Il s'agit de scripts personnalisés et autres fichiers exécutables que vous déployez dans le cadre du code source de votre application et qui sont exécutés par Elastic Beanstalk au cours de différentes étapes de provisionnement d'instance.

Note

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

Hooks de plateforme de déploiement d'applications

Un déploiement d'application se produit lorsque vous fournissez un nouveau bundle source pour le déploiement ou lorsque vous apportez une modification de configuration qui nécessite la résiliation et la récréation de toutes les instances d'environnement.

Pour fournir des hooks de plateforme qui s'exécutent pendant un déploiement d'application, placez les fichiers sous le répertoire .platform/hooks de votre bundle source, dans l'un des sous-répertoires suivants.

  • prebuild – Les fichiers s'exécutent après que le moteur de plateforme Elastic Beanstalk a téléchargé et extrait le bundle de fichiers source de l'application, et avant qu'il installe et configure l'application et le serveur web.

    Les fichiers prebuild s'exécutent après l'exécution des commandes trouvées dans la section commands de tout fichier de configuration et avant l'exécution des commandes Buildfile.

  • predeploy – Les fichiers s'exécutent après que le moteur de plateforme Elastic Beanstalk a installé et configuré l'application et le serveur web, et avant qu'il les déploie dans leur emplacement d'exécution final.

    Les fichiers predeploy s'exécutent après l'exécution des commandes trouvées dans la section container_commands de tout fichier de configuration et avant l'exécution des commandes Procfile.

  • postdeploy – Les fichiers s'exécutent après que le moteur de plateforme Elastic Beanstalk a déployé l'application et le serveur proxy.

    Il s'agit de la dernière étape du workflow de déploiement.

Hooks de plateforme de déploiement de configuration

Un déploiement de configuration se produit lorsque vous apportez des modifications de configuration qui mettent uniquement à jour les instances d'environnement sans les recréer. Les mises à jour des options suivantes provoquent une mise à jour de la configuration.

Pour fournir des hooks qui s'exécutent lors d'un déploiement de configuration, placez-les sous le répertoire .platform/confighooks de votre bundle source. Les trois mêmes sous-répertoires que pour les hooks de déploiement d'applications s'appliquent.

En savoir plus sur les hooks de plateforme

Les fichiers hooks peuvent être des fichiers binaires ou des fichiers script commençant par une ligne #! et contenant leur chemin d'interpréteur, par exemple #!/bin/bash. Tous les fichiers doivent disposer d'une autorisation d'exécution. Utilisez la commande chmod +x pour définir l'autorisation d'exécution sur vos fichiers hook. Pour toutes les versions de plateforme basées sur Amazon Linux 2023 et Amazon Linux 2 publiées à partir du 29 avril 2022, Elastic Beanstalk accorde automatiquement des autorisations d'exécution à tous les scripts de hook de plateforme. Dans ce cas, vous n'avez pas besoin d'accorder manuellement les autorisations d'exécution. Pour obtenir la liste de ces versions de plate-forme, reportez-vous aux notes de mise à jour de Linux du 29 avril 2022 dans le AWS Elastic Beanstalk Guide des notes de mise à jour.

Elastic Beanstalk exécute les fichiers dans chacun de ces répertoires et dans l'ordre lexicographique des noms de fichier. Tous les fichiers sont exécutés en tant qu'utilisateur root. Le répertoire de travail en cours (cwd) pour les hooks de plateforme est le répertoire racine de l'application. Pour les fichiers prebuild et predeploy, il s'agit du répertoire intermédiaire de l'application ; pour les fichiers postdeploy, il s'agit du répertoire en cours de l'application. Si un des fichiers échoue (fin d'exécution avec un code de sortie différent de zéro), le déploiement échoue.

Un script de texte Platform Hooks peut échouer s'il contient des caractères de saut de ligne Windows Carriage Retur/ Line Feed (CRLF). Si un fichier a été enregistré sur un hôte Windows, puis transféré sur un serveur Linux, il peut contenir des sauts de CRLF ligne Windows. Pour les plateformes publiées le 29 décembre 2022 ou après cette date, Elastic Beanstalk CRLF convertit automatiquement les caractères Windows en caractères de saut de ligne Linux Line Feed (LF) dans les fichiers texte des hooks de plateforme. Si votre application s'exécute sur une plate-forme Amazon Linux 2 publiée avant cette date, vous devez convertir les CRLF caractères Windows en caractères Linux LF. Pour cela, vous pouvez créer et enregistrer le fichier script sur un hôte Linux. Des outils permettant de convertir ces caractères sont également disponibles sur Internet.

Les fichiers hook ont accès à toutes les propriétés d'environnement que vous avez définies dans les options d'application, ainsi qu'aux variables d'environnement système HOME, PATH et PORT.

Pour obtenir des valeurs de variables d'environnement et d'autres options de configuration dans vos scripts de hook de plateforme, vous pouvez utiliser l'utilitaire get-config fourni par Elastic Beanstalk sur les instances d'environnement. Pour plus de détails, consultez Outils de script de plateforme pour vos environnements Elastic Beanstalk.