

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
<a name="platforms-linux-extend.build-proc"></a>

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 de la plataforma individual menciona específicamente a *Buildfile and/or *Procfile** si la plataforma los admite. Busque su plataforma específica en [Plataformas Elastic Beanstalk](concepts-all-platforms.md).

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
<a name="platforms-linux-extend.build"></a>

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 supervisa 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](#platforms-linux-extend.proc).

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.

**Example 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
<a name="platforms-linux-extend.proc"></a>

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 supervisa estos procesos y reinicia cualquier proceso que finalice. Para los procesos de corta ejecución, utilice [Buildfile.](#platforms-linux-extend.build).

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*.

**Example 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 información detallada sobre la configuración del proxy, consulte [Configuración del proxy inverso](platforms-linux-extend.proxy.md).

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.