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á.
Este tópico descreve como configurar, criar e executar suas aplicações Node.js no Elastic Beanstalk.
AWS Elastic Beanstalk suporta várias ramificações de plataforma para diferentes versões da linguagem de programação Node.js. Consulte Node.js no documento Plataformas do AWS Elastic Beanstalk para uma lista completa.
O Elastic Beanstalk fornece opções de configuração que você pode usar para personalizar o software executado no EC2 instâncias em seu ambiente do Elastic Beanstalk. É possível configurar as variáveis de ambiente necessárias à aplicação, habilitar a alternância de logs para o Amazon S3 e mapear pastas da origem da aplicação que contenham arquivos estáticos para caminhos atendidos pelo servidor de proxy.
As opções de configuração estão disponíveis no console do Elastic Beanstalk para modificar a configuração de um ambiente em execução. Para evitar a perda da configuração do ambiente quando você terminá-la, você pode usar configurações salvas para salvar as configurações e depois aplicá-las a outro ambiente.
Para salvar as configurações no código-fonte, você pode incluir arquivos de configuração. As definições em arquivos de configuração são aplicadas sempre que você cria um ambiente ou implementa a aplicação. Você também pode usar arquivos de configuração para instalar pacotes, executar scripts e realizar outras operações de personalização da instância em implantações.
Você pode incluir um Package.json arquivo em seu pacote de origem para instalar pacotes durante a implantação, fornecer um comando de início e especificar o Node.js versão que você deseja que seu aplicativo use. Você pode incluir um arquivo npm-shrinkwrap.json para bloquear versões de dependência.
A ferramenta Node.js A plataforma inclui um servidor proxy para fornecer ativos estáticos, encaminhar tráfego para seu aplicativo e compactar respostas. Você pode estender ou substituir a configuração de proxy padrão para cenários avançados.
Existem várias opções para iniciar seu aplicativo. Você pode adicionar um Procfileao seu pacote de origem para especificar o comando que inicia seu aplicativo. Quando você não fornece um Procfile
, mas fornece um arquivo package.json
, o Elastic Beanstalk executa npm start
. Se você não fornecer nenhum dos dois, o Elastic Beanstalk procurará o arquivo app.js
ou server.js
, nessa ordem, e o executará.
As configurações aplicadas no console do Elastic Beanstalk substituem as mesmas configurações em arquivos de configuração, caso elas existam. Isso permite que você tenha configurações padrão em arquivos de configuração e as substitua por configurações específicas de ambiente no console. Para obter mais informações sobre precedência e outros métodos de alteração das configurações, consulte Opções de configuração.
Para obter detalhes sobre as várias maneiras de estender uma plataforma do Elastic Beanstalk baseada em Linux, consulte Estender as plataformas Linux do Elastic Beanstalk.
Configurando seu Node.js ambiente
Você pode usar o Node.js configurações da plataforma para ajustar o comportamento de suas instâncias da Amazon EC2 . Você pode editar a configuração da EC2 instância Amazon para seu ambiente do Elastic Beanstalk usando o console do Elastic Beanstalk.
Você pode usar o console do Elastic Beanstalk para habilitar a alternância de logs para o Amazon S3 e configurar variáveis que sua aplicação pode ler no ambiente.
Para configurar seu Node.js ambiente no console do Elastic Beanstalk
Abra o console do Elastic
Beanstalk e, na lista Regiões, selecione sua. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
nota
Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.
No painel de navegação, escolha Configuration (Configuração).
-
Na categoria de configuração Updates, monitoring, and logging (Atualizações, monitoramento e logs), escolha Edit (Editar).
Opções de contêiner
É possível definir estas opções específicas da plataforma:
-
Proxy server (Servidor de proxy): o servidor de proxy a ser usado nas instâncias de ambiente. Por padrão, NGINX é usado.
Opções de log
A seção Log Options (Opções de log) tem duas configurações:
-
Instance profile (Perfil da instância): especifica o perfil da instância que tem permissão para acessar o bucket do Amazon S3 associado à sua aplicação.
-
Habilitar a rotação de arquivos de log para o Amazon S3 — Especifica se os arquivos de log das EC2 instâncias da Amazon do seu aplicativo são copiados para o bucket do Amazon S3 associado ao seu aplicativo.
Arquivos estáticos
Para melhorar a performance, você pode usar a seção Static files (Arquivos estáticos) para configurar o servidor proxy para servir arquivos estáticos (por exemplo, HTML ou imagens) de um conjunto de diretórios dentro da aplicação Web. Defina, para cada diretório, o caminho virtual para mapeamento de diretórios. Quando o servidor de proxy recebe uma solicitação para um arquivo no caminho especificado, ele atende o arquivo diretamente em vez de rotear solicitação para seu aplicativo.
Para ver detalhes sobre como configurar arquivos estáticos usando arquivos de configuração ou o console do Elastic Beanstalk, consulte Fornecer arquivos estáticos.
Propriedades de ambiente
Use a seção Propriedades do ambiente para especificar as configurações do ambiente nas EC2 instâncias da Amazon que estão executando seu aplicativo. Essas definições são passadas para o aplicativo como pares de chave-valor.
Dentro do Node.js ambiente em que é executado AWS Elastic Beanstalk, você pode acessar as variáveis de ambiente executandoprocess.env.ENV_VARIABLE
.
var endpoint = process.env.API_ENDPOINT
A ferramenta Node.js plataforma define o PORT variável de ambiente para a porta para a qual o servidor proxy passa tráfego. Para obter mais informações, consulte Configurar o servidor de proxy.
Consulte Variáveis de ambiente e outras configurações de software para obter mais informações.
As seguintes categorias de configuração de software de console são suportadas somente em um Elastic Beanstalk: Node.js ambiente que usa uma versão da plataforma Amazon Linux AMI (anterior ao Amazon Linux 2).
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, o Elastic Beanstalk definiu o status de todas as ramificações da plataforma baseadas no Amazon Linux AMI () como descontinuadas. AL1 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.
Na página de configuração, especifique o seguinte:
-
Servidor proxy — Especifica qual servidor web usar para conexões proxy com Node.js. Por padrão, NGINX é usado. Se você selecionar nenhum, os mapeamentos de arquivos estáticos não entrarão em vigor e GZIP a compressão está desativada.
-
Node.js versão — Especifica a versão do Node.js. Para obter uma lista de opções suportadas Node.js versões, consulte Node.jsno guia AWS Elastic Beanstalk de plataformas.
-
GZIP compressão — Especifica se GZIP a compressão está ativada. Por padrão, GZIP a compressão está ativada.
-
Comando Node — Permite inserir o comando usado para iniciar o Node.js aplicativo. Uma string vazia (o padrão) significa que o Elastic Beanstalk usa
app.js
, em seguidaserver.js
e depoisnpm start
.
Node.js namespace de configuração
Você pode usar um arquivo de configuração para definir opções de configuração e executar outras tarefas de configuração de instância durante implantações. Opções de configuração podem ser específicas da plataforma ou aplicáveis a todas as plataformas no serviço Elastic Beanstalk como um todo. As opções de configuração são organizadas em namespaces.
É possível escolher o proxy a ser usado nas instâncias do seu ambiente usando o namespace aws:elasticbeanstalk:environment:proxy
. O exemplo a seguir configura seu ambiente para usar o Apache
HTTPD servidor proxy.
exemplo .ebextensions/nodejs-settings.config
option_settings:
aws:elasticbeanstalk:environment:proxy:
ProxyServer: apache
É possível configurar o proxy para servir arquivos estáticos usando o namespace aws:elasticbeanstalk:environment:proxy:staticfiles
. Para obter mais informações e um exemplo, consulte Fornecer arquivos estáticos.
O Elastic Beanstalk oferece muitas opções de configuração para personalizar o ambiente. Além de arquivos de configuração, você também pode definir opções de configuração usando o console, configurações salvas, a EB CLI ou a AWS CLI. Consulte Opções de configuração para obter mais informações.
Se o seu Elastic Beanstalk Node.js O ambiente usa uma versão da plataforma Amazon Linux AMI (anterior ao Amazon Linux 2). Considere as configurações e recomendações específicas 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, o Elastic Beanstalk definiu o status de todas as ramificações da plataforma baseadas no Amazon Linux AMI () como descontinuadas. AL1 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.
O Elastic Beanstalk oferece suporte a algumas opções de configuração específicas da plataforma para o Amazon Linux AMI Node.js versões da plataforma. Você pode escolher qual servidor proxy executar na frente do seu aplicativo, escolher uma versão específica do Node.js para executar e escolha o comando usado para executar seu aplicativo.
Para servidor proxy, você pode usar um NGINX or Apache servidor proxy. Você pode definir o valor none
para a opção ProxyServer
. Nesse caso, o Elastic Beanstalk executa a aplicação como autônoma, não por atrás de algum servidor de proxy. Se seu ambiente executa um aplicativo independente, atualize seu código para ouvir a porta que NGINX encaminha o tráfego para.
var port = process.env.PORT || 8080;
app.listen(port, function() {
console.log('Server running at http://127.0.0.1:%s', port);
});
Em termos de versão de idioma suportada, o Node.js A plataforma Amazon Linux AMI é diferente de outras plataformas gerenciadas do Elastic Beanstalk. Isso ocorre porque cada Node.js a versão da plataforma suporta apenas alguns Node.js versões linguísticas. Para obter uma lista de opções suportadas Node.js versões, consulte Node.jsno guia AWS Elastic Beanstalk de plataformas.
Você pode usar uma opção de configuração específica da plataforma para definir a versão da linguagem. Para obter instruções, consulte Configurando seu Node.js ambiente. Como alternativa, use o console do Elastic Beanstalk para atualizar o Node.js versão que seu ambiente usa como parte da atualização da versão da sua plataforma.
nota
Quando o suporte oferecido para a versão do Node.js que você estiver usando for removido da plataforma, será necessário alterar ou remover a configuração da versão antes de fazer a atualização da plataforma. Isso pode ocorrer quando uma vulnerabilidade de segurança é identificada para uma ou mais versões do Node.js.
Quando isso acontece, a tentativa de atualizar para uma nova versão da plataforma que não suporta a configuração NodeVersionfalha. Para evitar a necessidade de criar um novo ambiente, altere a opção de NodeVersionconfiguração para uma versão do Node.js compatível com a versão antiga e a nova da plataforma, ou remova a configuração da opção e execute a atualização da plataforma.
Para configurar seu ambiente Node.js versão no console do Elastic Beanstalk
Abra o console do Elastic
Beanstalk e, na lista Regiões, selecione sua. Região da AWS -
No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.
nota
Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.
-
Na página de visão geral do ambiente, em Platform (Plataforma), escolha Change (Alterar).
-
Na caixa de diálogo Atualizar versão da plataforma, selecione um Node.js versão.
-
Escolha Salvar.
A ferramenta Node.js A plataforma Amazon Linux AMI define opções adicionais nos aws:elasticbeanstalk:container:nodejs:staticfiles
aws:elasticbeanstalk:container:nodejs
namespaces e.
O arquivo de configuração a seguir diz ao Elastic Beanstalk para usar npm start
para executar a aplicação. Ele também define o tipo de proxy como Apache e ativa a compressão. Por fim, ele configura o proxy para servir arquivos estáticos de dois diretórios de origem. Uma fonte é HTML arquivos no html
caminho abaixo da raiz do site a partir do diretório de statichtml
origem. A outra fonte são arquivos de imagem no images
caminho sob a raiz do site a partir do diretório de origem staticimages
.
exemplo .ebextensions/node-settings.config
option_settings:
aws:elasticbeanstalk:container:nodejs:
NodeCommand: "npm start"
ProxyServer: apache
GzipCompression: true
aws:elasticbeanstalk:container:nodejs:staticfiles:
/html: statichtml
/images: staticimages
O Elastic Beanstalk oferece muitas opções de configuração para personalizar o ambiente. Além de arquivos de configuração, você também pode definir opções de configuração usando o console, configurações salvas, a EB CLI ou a AWS CLI. Consulte Opções de configuração para obter mais informações.