Vamos utilizar AWS Lambda e Amazon API Gateway para criar nosso backend. AWS Lambda é um serviço que permite executar códigos na nuvem sem se preocupar com servidores. Você paga apenas pelo tempo em que a função é executada e não há cobrança de tempo inativo. O API Gateway permite que desenvolvedores criem, publiquem, mantenham e monitorem APIs de forma segura. Usar Lambda e configurar o API Gateway sem nenhum tipo de framework pode ser uma tarefa árdua, por isso vamos uilizar o Serverless Framework para simplificar o processo.

O Serverless Framework dá possibilidade aos desenvolvedores implantarem o backend de suas aplicações como funções independentes baseadas em eventos, que são mais tarde enviadas para o Lambda. O framework também configura o Lambda para executar o código como resposta a requests de HTTP em forma de eventos utilizando o API Gateway.

Neste capítulo nós vamos configurar o Serverless Framework em nosso ambiente de desenvolvimento local.

Instalando Serverless

Change indicator Instala o Serverless globalmente.

$ npm install serverless -g

O comando acima precisa do NPM instalado, um gerenciador de pacotes. Acesse esse link se precisar de ajuda para instalar.

Change indicator No diretório onde vai colocar os arquivos do projeto, crie um projeto base do Node.js. Nós vamos ver alguns detalhes desse projeto no próximo capítulo.

$ serverless install --url https://github.com/AnomalyInnovations/serverless-nodejs-starter --name notes-app-api

Change indicator Vá até o diretório do backend de nossa API.

$ cd notes-app-api

Agora o diretório deve contar novos arquivos, incluindo handler.js e serverless.yml.

  • handler.js arquivo que contém o código para os serviços e funções que vamos implantar no Lambda.
  • serverless.yml arquivo que contém configurações para os serviços da AWS, cujo o Serverless vai configurar de acordo com as instruções contidas aqui.

Também temos um diretório tests/ onde nós podemos adicionar testes unitários.

Instalando pacotes Node.js

O projeto inicial requisita algumas dependências que são listadas no arquivo package.json.

Change indicator Na raíz do projeto, execute.

$ npm install

Change indicator Agora vamos instalar alguns outros pacotes específicos para nosso backend.

$ npm install aws-sdk --save-dev
$ npm install uuid --save
  • aws-sdk é um pacote para comunicar com os serviços da AWS.
  • uuid serve para gerar ids únicas. Precisamos dele para salvar itens no DynamoDB.

O projeto incial que estamos usando é compatível com a versão do JavaScript que estaremos usando no nosso frontend mais tarde. Em seguida, vamos ver como fazer isso.