Configuration du processus de l'application avec un Procfile - 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.

Configuration du processus de l'application avec un Procfile

Si vous avez plus d'un fichier JAR à la racine du groupe source de votre application, vous devez inclure un fichier Procfile qui indique à Elastic Beanstalk quels JAR exécuter. Vous pouvez également inclure un fichier Procfile pour une seule application JAR pour configurer la machine virtuelle Java (JVM) qui exécute votre application.

Nous vous recommandons de toujours fournir un Procfile dans le bundle source avec votre application. De cette façon, vous contrôlez précisément les processus Elastic Beanstalk qui s'exécutent pour votre application et les arguments que ces processus reçoivent.

Pour plus d'informations sur l'écriture et l'utilisation d'un Procfile, développez la section Buildfile et Procfile dans Extension des plateformes Linux Elastic Beanstalk.

Exemple Procfile
web: java -Xms256m -jar server.jar cache: java -jar mycache.jar web_foo: java -jar other.jar

La commande qui exécute le JAR principal dans votre application doit être appelée web, et il doit s'agir de la première commande figurant dans votre Procfile. Le serveur nginx transmet à cette application toutes les requêtes HTTP qu'il reçoit de l'équilibreur de charge de votre environnement.

Elastic Beanstalk part du principe que toutes les entrées dans Procfile doivent s'exécuter en permanence et redémarre automatiquement toute application définie dans le Procfile qui s'arrête. Pour exécuter des commandes qui s'arrêteront et ne devraient pas être redémarrées, utilisez un Buildfile.

Si votre environnement Java SE Elastic Beanstalk utilise une version de plate-forme AMI Amazon Linux (antérieure à Amazon Linux 2), lisez les informations supplémentaires dans cette section.

Remarques
  • Les informations de cette rubrique s'appliquent uniquement aux branches de plateforme basées sur l'AMI Amazon Linux (AL1). Les branches de plateforme AL2023/AL2 sont incompatibles avec les versions de plateforme précédentes de l'AMI Amazon Linux (AL1) et nécessitent des paramètres de configuration différents.

  • Le 18 juillet 2022, Elastic Beanstalk définira les statuts de toutes les branches de plateforme basées sur une AMI Amazon Linux (AL1) sur mise hors service. Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.

Par défaut, Elastic Beanstalk configure le serveur proxy nginx pour transmettre les demandes à votre application sur le port 5000. Vous pouvez remplacer le port par défaut en définissant la propriété d'environnement PORT sur le port que votre application écoute.

Si vous utilisez un Procfile pour exécuter plusieurs applications, Elastic Beanstalk sur les versions de plateforme AMI Amazon Linux s'attend à ce que chaque application supplémentaire écoute sur un port 100 supérieur au précédent. Elastic Beanstalk définit la variable PORT accessible à partir de chaque application avec le port sur lequel il s'attend à ce que l'application s'exécute. Vous pouvez accéder à cette variable dans votre code d'application en appelant System.getenv("PORT").

Dans l'exemple Procfile précédent, l'application web écoute sur le port 5000, cache écoute sur le port 5100 et web_foo écoute sur le port 5200. web configure son port d'écoute en lisant la variable PORT et ajoute 100 à ce nombre pour déterminer sur quel port cache écoute afin de pouvoir lui envoyer des demandes.