Debugando Lambda no VSCode utilizando Serverless framework
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.
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.
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);
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.
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!
É 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: