Configuración del proceso de la aplicación con un Procfile - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración del proceso de la aplicación con un Procfile

Si tiene más de un archivo JAR en la raíz del paquete de código fuente de su aplicación, debe incluir un archivo Procfile que indique a Elastic Beanstalk qué archivos JAR debe ejecutar. También puede incluir un archivo Procfile para una sola aplicación JAR para configurar la máquina virtual Java (JVM) que ejecuta su aplicación.

Le recomendamos que siempre proporcione un paquete Procfile en el origen junto con su aplicación. De esta forma, puede controlar con precisión qué procesos ejecuta Elastic Beanstalk para su aplicación y qué argumentos reciben estos procesos.

Para obtener más información sobre cómo escribir y utilizar un Procfile, expanda la sección Buildfile y Procfile en Ampliación de las plataformas Linux de Elastic Beanstalk.

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

El comando que ejecuta el archivo JAR principal de su aplicación debe llamarse web y debe ser el primer comando incluido en el archivo Procfile. El servidor nginx reenvía todas las solicitudes HTTP que recibe del balanceador de carga de su entorno a esta aplicación.

Elastic Beanstalk asume que todas las entradas del archivo Procfile deben ejecutarse en todo momento y reinicia automáticamente todas las aplicaciones definidas en el archivo Procfile que termina. Para ejecutar comandos que terminan y no deben reiniciarse, utilice un Buildfile.

Si su entorno Java SE de Elastic Beanstalk utiliza una versión de la plataforma de la AMI de Amazon Linux (anterior a Amazon Linux 2), lea la información adicional de esta sección.

Notas
  • La información de este tema solo se aplica a ramificaciones de plataforma basadas en la AMI de Amazon Linux (AL1). Las ramificaciones de la plataforma AL2023/AL2 son incompatibles con las versiones anteriores de la plataforma de la AMI de Amazon Linux (AL1) y requieren ajustes de configuración diferentes.

  • El 18 de julio de 2022, Elastic Beanstalk estableció el estado de todas las ramificaciones de la plataforma basadas en la AMI de Amazon Linux (AL1) como retirado. Para obtener más información sobre la migración a una ramificación de la plataforma Amazon Linux 2023 actual y totalmente compatible, consulte Migración de su aplicación de Linux de Elastic Beanstalk a Amazon Linux 2023 o Amazon Linux 2.

De forma predeterminada, Elastic Beanstalk configura el proxy nginx para reenviar las solicitudes a la aplicación en el puerto 5000. Puede invalidar el puerto predeterminado estableciendo la propiedad del entorno PORT en el puerto en el que desea que la aplicación principal esté a la escucha.

Si utiliza un Procfile para ejecutar varias aplicaciones, Elastic Beanstalk en las versiones de la plataforma de la AMI de Amazon Linux espera que cada aplicación adicional esté a la escucha en un puerto 100 mayor que el anterior. Elastic Beanstalk establece la variable PORT accesible desde cada aplicación en el puerto en el que espera que se ejecute la aplicación. Puede tener acceso a esta variable en el código de su aplicación llamando a System.getenv("PORT").

En el Procfile de ejemplo anterior, la aplicación web está a la escucha en el puerto 5000, cache en el puerto 5100 y web_foo en el puerto 5200. web configura su puerto de escucha leyendo la variable PORT y añade 100 a dicho número para determinar en qué puerto cache está a la escucha para poder enviarle solicitudes.