sexta-feira, 19 de fevereiro de 2021

AWS Lambda, Node e Typescript

Neste post vou mostrar como criar um AWS Lambda utilizando Node e Typescript. 

O projeto será organizado para o exemplo deste post e para entendimento que o mesmo projeto possa ser reaproveitado (módulos) em outros lambdas, por exemplo, um projeto que componha todas as operações/funções (lambda) de uma API.

Passos: 

1) Instalação npm:

sudo apt-get install npm

2) Instalação Node:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

3) Instalação typescript:

sudo npm install -g typescript

4) - Criação do projeto:

mkdir LambdaNodeTypescript
cd LambdaNodeTypescript
tsc --init
npm init

5) Com o projeto criado, abra o mesmo com alguma ferramenta de desenvolvimento de sua preferencia, neste exemplo será utilizado o Visual Studio Code. Execute:

code .

6) Vamos continuar as configurações agora usando o terminal do Visual Studio Code. Vamos acrescentar as seguintes dependências do projeto para desenvolvimento com o Typescript. execute os seguintes comandos:

npm install @types/node --save-dev
npm install aws-sdk --save-dev
npm install @types/aws-lambda --save-dev


7) Depois vamos configurar a parte de build, agora vamos criar as classes que irão compor nosso projeto. Vamos criar um modulo de controller, para isso crie um dir "controller" e o seguinte arquivo "hello.world.controller.ts". Nesta classe que iremos deixar nossas regra de negocio.


8) Vamos agora criar o handler, crie um dir com o nome "handler", e crie o arquivo "hello.world.handler.ts".


9) Vamos criar o index, para podermos declarar o método de execução do lambda, que no caso do exemplo é o "execute".

10) Agora vamos configurar o build e test do projeto, para o build, vamos alterar o arquivo "tsconfig.json" da seguinte maneira:


Agora vamos alterar o arquivo "package.json":


11) Execute o comando para gerar o arquivo zip.

npm run all

12) Vamos criar um AWS Lambda, acesse a console, selecione "Lambda" e depois "Create function":

 

13) Em "Function Name" preencha com "LambdaNodeTypescript", selecione a ultima runtime do node disponível e selecione a role para execução e click em "Create Function"


14) Com a função criada, vamos fazer o upload do zip do projeto, em  "Action" selecione "Upload a .zip file"


15) Click em "Upload", selecione o arquivo zip do projeto e click em "Save"


16) Vamos apontar agora para o método "execute", vá em "Runtime settings" e click em "Edit" 

17) Em "Handler" altera para "index.execute" e click em "Save"

18) Vamos criar um evento de teste para o nosso Lambda, selecione "Configure test events"

19) Em "Event name" preencha com "test1" e passe um json em branco e click em "Create"

20) Vamos testar, certifique-se que o evento de teste criado anteriormente está selecionado e click em "Test".


O projeto deste post está no meu github link.

Nenhum comentário:

Postar um comentário