Debugando Lambda no VSCode utilizando Serverless framework

Thiago Luiz
Red Ventures Brasil - Tech
3 min readJun 28, 2020

Fala dev, blz?

Bom, vou tentar compartilhar de forma simples esse processo de realizar o debugging de uma Lambda function desenvolvida em Node.js no VSCode utilizando o framework Serverless.

Com o seu npm init previamente executado, é necessario instalar apenas o pacote serverless.

command line
versão utilizada

O próximo passo é criar a sua Lambda, caso você não compreenda o conceito de Serverless, ao qual é primordial para entendimento do processo descrito aqui, você pode encontrar a explicação desse conceito através do link.

index.js

O próximo passo é configurar o arquivo de configuração do framework Serverless. Basta criar uma .yml com as seguintes configurações:

  • service: flag para nomear o projeto que define sua AWS lambda function;
  • provider: flag que define o tipo do serviço, no nosso caso estamos "utilizando" o serviço AWS;
  • runtime: linguagem/versão da lambda;
  • environment: caso você queira criar/modificar variáveis de ambiente no seu process.env, essa é uma flag que pode ser útil;
  • functions: flag destinada para configuração das suas funções, não limitada a apenas uma, como no exemplo;
  • debugging: nomeando chamada da nossa Lambda;
  • handler: declarando o handler a ser utilizado (padrão: filename.handlername);
serverless.yml

Legal! Agora iremos criar nosso arquivo de debugging que será interpretado pelo VSCode. Você pode criar esse arquivo de forma manual ou pelo próprio VS, basta clicar na aba Run e em seguida mais uma vez clicando em "create a launch.json file". Depois, é só selecionar o ambiente Node.js e o arquivo será criado automaticamente no seu diretório.

Aba Run (create a launch.json file)
Selecionar Node.js

O arquivo criado vem com alguns parâmetros default, contudo iremos compreender apenas as configurações relevantes:

  • program: o path do executável do serveless ($workspaceFolder: path da pasta/projeto aberto no VS);
  • args: argumentos passados na execução do serverless (nosso exemplo é via array de string, contudo pode ser apenas uma única string);
  • invoke local: invoca uma Lambda local para teste e logs;
  • - -function ou -f: o nome da função a ser invocada dentro do serviço;
  • - -data: string a ser passada como evento para nossa função(nosso input);

Pronto, agora basta adicionar seus breakpoints no código e começar a debugar!

event
resposta

É isso pessoal, compartilho algo simples que possa ajuda-los de alguma forma, pois tive que gastar um tempinho pra chegar nesse resultado.

Obrigado por ter lido, até a próxima.

Links:

--

--

Thiago Luiz
Red Ventures Brasil - Tech

Sr Software Engineer at PicPay with focus in Golang and AWS.