Buildfile y 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.

Buildfile y Procfile

Algunas plataformas permiten personalizar el modo en que se crea o prepara la aplicación y permiten especificar los procesos que ejecutan la aplicación. Cada tema individual de la plataforma menciona específicamente Buildfile y/o Procfile si la plataforma es compatible. Busque su plataforma específica en Plataformas Elastic Beanstalk.

Para todas las plataformas de soporte, la sintaxis y la semántica son idénticas, y son como se describe en esta página. Los temas individuales de la plataforma mencionan el uso específico de estos archivos para crear y ejecutar aplicaciones en sus respectivos idiomas.

Buildfile

Si desea especificar un comando de compilación y configuración personalizado para la aplicación, coloque un archivo llamado Buildfile en el directorio raíz del origen de la aplicación. El nombre de archivo distingue entre mayúsculas y minúsculas. Utilice la siguiente sintaxis con el archivo Buildfile.

<process_name>: <command>

El comando del archivo Buildfile debe ajustarse a la siguiente expresión regular: ^[A-Za-z0-9_-]+:\s*[^\s].*$.

Elastic Beanstalk no monitoriza la aplicación que se ejecuta con un Buildfile. Utilice un archivo Buildfile con comandos que se ejecuten durante cortos periodos de tiempo y terminen después de completar las tareas. En el caso de los procesos de larga duración de la aplicación que no deben terminar, utilice en su lugar el archivo Procfile.

Todas las rutas de Buildfile son rutas relativas que hacen referencia a la raíz del paquete de código fuente. En el siguiente ejemplo de Buildfile, build.sh es un script de shell que se encuentra en la raíz del paquete de código fuente.

ejemplo Buildfile
make: ./build.sh

Si desea incluir pasos de compilación personalizados, le recomendamos que, en lugar de Buildfile, utilice enlaces de plataforma predeploy para todo excepto para los comandos más simples. Los enlaces de plataforma admiten secuencias de comandos más elaboradas y posibilitan una mejor administración de los errores. Los enlaces de plataforma se describen en la siguiente sección.

Procfile

Si desea especificar comandos personalizados para iniciar y ejecutar la aplicación, coloque un archivo llamado Procfile en el directorio raíz del código fuente de la aplicación. El nombre de archivo distingue entre mayúsculas y minúsculas. Utilice la siguiente sintaxis con el archivo Procfile. Puede especificar uno o varios comandos.

<process_name1>: <command1> <process_name2>: <command2> ...

Cada línea del archivo Procfile debe ajustarse a la siguiente expresión regular: ^[A-Za-z0-9_-]+:\s*[^\s].*$.

Utilice un archivo Procfile para procesos de aplicación de larga ejecución que no deberían salir. Elastic Beanstalk espera que los procesos del archivo Procfile se ejecuten de forma continua. Elastic Beanstalk monitoriza estos procesos y reinicia cualquier proceso que finalice. Para los procesos de corta ejecución, utilice Buildfile..

Todas las rutas de Procfile son rutas relativas que hacen referencia a la raíz del paquete de código fuente. En el siguiente ejemplo, Procfile define tres procesos. El primero, llamado web en el ejemplo, es la aplicación web principal.

ejemplo Procfile
web: bin/myserver cache: bin/mycache foo: bin/fooapp

Elastic Beanstalk configura el servidor proxy para reenviar solicitudes a su aplicación web principal en el puerto 5000 y puede configurar este número de puerto. Un uso habitual de Procfile es pasar este número de puerto a su aplicación como un argumento de la línea de comandos. Para obtener más información sobre la configuración del proxy, consulteConfiguración del proxy inverso.

Elastic Beanstalk captura flujos de error y salida estándar de procesos del archivo Procfile en archivos de registro. Elastic Beanstalk nombra los archivos de registro después del proceso y los almacena en /var/log. Por ejemplo, el proceso web del ejemplo anterior genera los logs llamados web-1.log y web-1.error.log para stdout y stderr, respectivamente.