All Articles

Você já pode atualizar suas AWS Lambdas para o Node.js 10 LTS

Não faz muito tempo que a AWS anunciou que um dos seus serviços que mais uso (AWS Lambda) daria então suporte ao runtime do Node.js 10 LTS, isso provavelmente faz parte dos planos da empresa de cada vez mais suportar plataformas modernas nos seus serviços.

Atualmente já suportando código de outras plataformas como por exemplo, Python, Java, C#, Ruby e Go.

Você ainda está usando o Node.js 6.x?

Você precisa sair do Node.js 6.x

O Node.js 6.x foi mantido como LTS (suporte de longo prazo) desde de 2016 e o seu ciclo de vida chegou ao fim em 30 de abril de 2019. Logo essa versão não receberá novas atualizações de bugs críticos, correções de segurança, patches ou outras atualizações importantes.

Com a adição do Node.js 10.x, o AWS Lambda continua a suportar dois runtimes da plataforma JavaScript. O Node.js 8.10 ainda é suportado, no entanto, ele está entrando na fase final de manutenção e suporte que vai até 2020, enquanto a 10.x está atualmente na fase LTS.

Acompanhando a comunidade Serverless em volta desse comunicado pude perceber que muita gente ainda possui o receio de realizar o upgrade para a versão 10.x por pensarem que esse novo runtime é beta na AWS.

Fiquei com a impressão que muita gente ficou com o pé atrás por ainda não estarem adaptados a uma nova cultura de que o seu ambiente de desenvolvimento/produção não será de sua responsabilidade e sim do provedor do serviço. O fato da AWS não anunciar esse suporte como beta para mim é justificativa mais do que suficiente para atualizar os meus AWS Lambdas.

Sim, já estou usando Node.js 10.x

O Node.js 10.x traz uma versão mais recente do V8. Isso introduz várias alterações na maneira como nosso código é compilado, armazenado em cache e executado.

Hoje você já pode alterar para a nova versão sem precisar fazer nenhuma alteração de código para garantir a compatibilidade basta atualizar a configuração da AWS Lambda para a nova versão. Além disso o Node.js 10.x já foi implementado em todas as regiões onde o serviço está disponível.

Principais diferenças entre o Node.js 6.x e o Node.js 10.x

As métricas fornecidas pelo Benchmarking do Node.js destacam os benefícios de desempenho da atualização do Node.js 6 para a versão LTS mais recente, o Node.js 10.x:

Atualizando o runtime pelo console da AWS

Atualizando o runtime pelo Serverless Framework

Antes de atualizar o runtime no Serverless Framework, você precisa ter a versão do Node.js 10.x instalada em sua máquina, para mim a melhor maneira de se manter diversas versões do Node.js é utilizando o NVM, já comentei como instalar e utilizar o NVM no artigo Como instalar o Node.js corretamente no Linux.

Com a certeza que temos o NVM instalado nos resta então instalar a versão 10.x:

nvm install 10

E atualizamos o runtime dentro do arquivo serverless.yml conforme o exemplo abaixo:

provider:
  name: aws
  runtime: nodejs10.x

Pronto agora é só fazer o deploy, um café e relaxar.

Conclusão

A maioria das aplicações em produção criadas usando Node.js fazem uso das versões LTS, por isso é altamente recomendável que você atualize qualquer aplicação ou AWS Lambda que está atualmente usando a versão Node.js 6.x para o Node.js 10.x, a versão LTS mais recente do momento.

Crie a cultura de manter não apenas o node como também suas dependências atualizadas, evitando surpresas como quebra de versão e problemas de segurança.

Espero que você tenha gostado do artigo de hoje, se tiver alguma dúvida fique a vontade para me procurar nas redes como @malaquiasdev.