Configurar o processo do aplicativo com um Procfile - AWS Elastic Beanstalk

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 o processo do aplicativo com um Procfile

Se você tem mais de um arquivo JAR na raiz do seu pacote de origem da aplicação, deve incluir um arquivo Procfile que informa o Elastic Beanstalk quais JARs devem ser executados. Você também pode incluir um arquivo Procfile para um único aplicativo JAR para configurar a Java virtual machine (JVM – máquina virtual Java) que executa seu aplicativo.

Recomendamos sempre fornecer um Procfile no pacote de origem juntamente com o aplicativo. Dessa forma, você controla com precisão quais processos são executados pelo Elastic Beanstalk para o aplicativo e quais argumentos são recebidos por esses processos.

Para obter detalhes sobre como escrever e usar um Procfile, expanda a seção Buildfile e Procfile em Estender as plataformas Linux do Elastic Beanstalk.

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

O comando que executa o JAR principal em seu aplicativo deve ser denominado web e deve ser o primeiro comando listado no Procfile. O servidor nginx encaminha todas as solicitações HTTP que ele recebe do balanceador de carga do seu ambiente para essa aplicação.

O Elastic Beanstalk pressupõe que todas as entradas no Procfile devam ser sempre executadas e reinicia automaticamente qualquer aplicação encerrada definida no Procfile. Para executar comandos que serão encerrados e não deverão ser reiniciados, use um Buildfile.

Se o seu ambiente Java SE do Elastic Beanstalk usa uma versão da plataforma da 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 somente são aplicáveis a ramificações de plataforma com base na Amazon Linux AMI (AL1). As ramificações de plataforma AL2023/AL2 são incompatíveis com as versões anteriores da plataforma Amazon Linux AMI (AL1) e exigem definições de configuração diferentes.

  • Em 18 de julho de 2022, o Elastic Beanstalk definiu o status de todas as ramificações de 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.

Por padrão, o Elastic Beanstalk configura o proxy nginx para encaminhar solicitações à sua aplicação na porta 5000. Você pode substituir a porta padrão definindo a propriedade do ambiente PORT para a porta de escuta do seu aplicativo principal.

Se você usar o Procfile para executar várias aplicações, as versões da plataforma da AMI do Amazon Linux do Elastic Beanstalk esperam que cada aplicação adicional escute em uma porta 100 maior que a anterior. O Elastic Beanstalk define a variável PORT acessível de cada aplicação como a porta na qual ele espera que a aplicação seja executada. Você pode acessar essa variável no código do seu aplicativo chamando System.getenv("PORT").

No exemplo acima de Procfile, o aplicativo web escuta na porta 5.000, cache escuta na porta 5.100 e web_foo escuta na porta 5.200. web configura a porta de escuta lendo a variável PORT e acrescenta 100 a esse número para determinar em qual porta cache está escutando para que ele possa enviar solicitações a ela.