

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Buildfile e Procfile
<a name="platforms-linux-extend.build-proc"></a>

Alcune piattaforme consentono di personalizzare la modalità di compilazione o preparazione dell'applicazione e di specificare i processi che eseguono l'applicazione. Ogni singolo argomento della piattaforma menziona specificamente *Buildfile and/or *Profile** se la piattaforma li supporta. Cerca la tua piattaforma specifica sotto [Piattaforme Elastic Beanstalk](concepts-all-platforms.md).

Per tutte le piattaforme di supporto, la sintassi e la semantica sono identiche e sono come descritto in questa pagina. I singoli argomenti della piattaforma menzionano l'uso specifico di questi file per la creazione e l'esecuzione di applicazioni nelle rispettive lingue.

## Buildfile
<a name="platforms-linux-extend.build"></a>

Per specificare un comando di configurazione e compilazione personalizzato per l'applicazione, inserire un file denominato `Buildfile` nella directory principale dell'origine dell'applicazione. Per il nome del file è prevista la distinzione tra maiuscole e minuscole. Utilizzare la seguente sintassi per il tuo `Buildfile`.

```
<process_name>: <command>
```

Il comando nel `Buildfile` deve corrispondere alla seguente espressione regolare: `^[A-Za-z0-9_-]+:\s*[^\s].*$`.

Elastic Beanstalk non monitora l'applicazione eseguita con un `Buildfile`. Usa un `Buildfile` per comandi che vengono eseguiti per brevi periodi e terminano dopo aver completato le proprie attività. Per i processi di applicazioni a lungo termine da non terminare, utilizza il [Procfile](#platforms-linux-extend.proc).

Tutti i percorsi nel `Buildfile` sono relativi alla radice del bundle di origine. Nel seguente esempio di `Buildfile`, `build.sh` è uno script di shell che si trova nella radice del bundle di origine:

**Example Buildfile**  

```
make: ./build.sh
```

Se si desidera fornire passaggi di compilazione personalizzati, si consiglia di utilizzare gli hook della piattaforma `predeploy` per qualsiasi cosa tranne i comandi più semplici, invece di `Buildfile`. Gli hook della piattaforma consentono script più ricchi e una migliore gestione degli errori. Gli hook della piattaforma sono descritti nella sezione successiva.

## Procfile
<a name="platforms-linux-extend.proc"></a>

Per specificare comandi personalizzati per avviare ed eseguire l'applicazione, inserire un file denominato `Procfile` nella directory principale dell'origine dell'applicazione. Per il nome del file è prevista la distinzione tra maiuscole e minuscole. Utilizzare la seguente sintassi per il tuo `Procfile`. È possibile specificare uno o più comandi.

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

Ogni riga nel `Procfile` deve corrispondere alla seguente espressione regolare: `^[A-Za-z0-9_-]+:\s*[^\s].*$`

Utilizza un `Procfile` per i processi di applicazioni a lungo termine che non devono essere terminati. Elastic Beanstalk si aspetta che i processi del `Procfile` vengano eseguiti continuamente. Elastic Beanstalk monitora questi processi e riavvia qualsiasi processo che termina. Per i processi con esecuzione breve, utilizza un comando [Buildfile](#platforms-linux-extend.build).

Tutti i percorsi nel `Procfile` sono relativi alla radice del bundle di origine. Nell'esempio seguente `Procfile` definisce tre processi. Il primo, chiamato `web` nell'esempio, è l'*applicazione web principale*.

**Example Procfile**  

```
web: bin/myserver
cache: bin/mycache
foo: bin/fooapp
```

Elastic Beanstalk configura il server proxy per inoltrare le richieste all'applicazione Web principale sulla porta 5000 ed è possibile configurare questo numero di porta. Un uso comune per un `Procfile` è quello di passare questo numero di porta all'applicazione come argomento di comando. Per i dettagli sulla configurazione del proxy, vedere. [Configurazione del proxy inverso](platforms-linux-extend.proxy.md)

Elastic Beanstalk acquisisce flussi di output e errori standard dai processi `Procfile` nei file di log. Elastic Beanstalk assegna i nomi dei file di log dopo il processo e li archivia in `/var/log`. Ad esempio, il processo `web` dell'esempio precedente genera log chiamati `web-1.log` e `web-1.error.log` per, rispettivamente, `stdout` e `stderr`.