

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar comandos de inicialização personalizados com um Procfile no Elastic Beanstalk
<a name="go-procfile"></a>

Para especificar comandos personalizados para iniciar um aplicativo em Go, inclua um arquivo chamado `Procfile` na raiz do pacote de origem.

Para obter detalhes sobre como gravar e usar um `Procfile`, consulte [Buildfile e Procfile](platforms-linux-extend.build-proc.md).

**Example Procfile**  

```
web: bin/server
queue_process: bin/queue_processor
foo: bin/fooapp
```

Você deve chamar a aplicação principal `web` e listá-la como o primeiro comando no seu `Procfile`. O Elastic Beanstalk expõe a aplicação principal `web` no URL raiz do ambiente, por exemplo, `http://my-go-env.elasticbeanstalk.com`.

O Elastic Beanstalk também executa quaisquer aplicações cujo nome não tenha o prefixo `web_`, mas essas aplicações estão disponíveis somente dentro da instância.

O Elastic Beanstalk espera que os processos sejam executados a partir do `Procfile` para serem executados continuamente. O Elastic Beanstalk monitora essas aplicações e reinicia qualquer processo que seja encerrado. Para processos de curta execução, use um comando do [Buildfile](go-buildfile.md).

## Usar um Procfile na AMI do Amazon Linux (anterior ao Amazon Linux 2)
<a name="go-procfile.alami"></a>

Se o ambiente Go do Elastic Beanstalk usar uma versão da plataforma AMI do Amazon Linux (anterior ao Amazon Linux 2), leia as informações adicionais nesta seção.

**Observações**  
As informações neste tópico se aplicam somente às ramificações da plataforma baseadas no Amazon Linux AMI (AL1). AL2As ramificações AL2 da plataforma 023/ são incompatíveis com as versões anteriores da plataforma Amazon Linux AMI (AL1) e *exigem configurações diferentes*.
 [Em 18 de julho de 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **o Elastic Beanstalk definiu o status de todas as ramificações da plataforma baseadas no Amazon Linux AMI AL1 () como descontinuadas.** Para obter mais informações sobre como migrar para uma ramificação da plataforma Amazon Linux 2023 atual e totalmente compatível, consulte [Migrar a aplicação Linux do Elastic Beanstalk para o Amazon Linux 2023 ou Amazon Linux 2](using-features.migration-al.md).

### Passagem de portas — Amazon Linux AMI (AL1)
<a name="go-procfile.alami.ports"></a>

**nota**  
As informações neste tópico se aplicam somente às ramificações da plataforma baseadas no Amazon Linux AMI (AL1). AL2As ramificações AL2 da plataforma 023/ são incompatíveis com as versões anteriores da plataforma Amazon Linux AMI (AL1) e *exigem configurações diferentes*.

O Elastic Beanstalk configura o proxy nginx para encaminhar solicitações à aplicação no número de porta especificado na [propriedade de ambiente](go-environment.md#go-options) `PORT` da aplicação. O aplicativo sempre deve escutar nessa porta. Você pode acessar essa variável em seu aplicativo chamando o método `os.Getenv("PORT")`.

O Elastic Beanstalk usa o número de porta especificado na propriedade de ambiente `PORT` para a porta da primeira aplicação no `Procfile` e, depois, incrementa o número da porta em 100 para cada aplicação subsequente no `Procfile`. Se a propriedade de ambiente `PORT` não estiver definida, o Elastic Beanstalk usará 5000 para a porta inicial.

No exemplo anterior, a propriedade de ambiente `PORT` para a aplicação `web` é 5000, para a aplicação `queue_process` é 5100 e para a aplicação `foo` é 5200. 

Você pode especificar a porta inicial definindo a opção `PORT` com o namespace [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment), como mostra o exemplo a seguir. 

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application:environment
    option_name:  PORT
    value:  <first_port_number>
```

Para obter mais informações sobre como configurar variáveis de ambiente para a aplicação, consulte [Configurações de opção](ebextensions-optionsettings.md).