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.