Este guia explica como configurar e testar funções Lambda localmente utilizando o Serverless Framework, o plugin serverless-offline e o Postman.
Configuração Básica do Serverless Framework
-
Instale o Serverless Framework (caso ainda não tenha):
npm install -g serverless -
Instale as dependências do projeto:
npm install -
Adicione o plugin
serverless-offlineao seu projeto:npm install serverless-offline --save-dev -
Configure o arquivo
serverless.ymlpara usar o plugin:Certifique-se de que o arquivo
serverless.ymlinclui o pluginserverless-offline. Exemplo:plugins: - serverless-webpack - serverless-webpack-prisma - serverless-offlineSua função
broadcastestá configurada para ser acionada por uma fila SQS e utilizar oserverless-offline.
Executar Localmente o Serverless Offline
Execute o seguinte comando para iniciar o ambiente local:
npm run serverless:offline
Este comando emula o comportamento do API Gateway e do SQS, criando endpoints locais para teste. Você verá algo como:
Serverless: Offline [HTTP] listening on http://localhost:3000
Serverless: Offline [SQS] listening on http://localhost:9324
No caso de funções acionadas por filas SQS, o Serverless cria endpoints HTTP para enviar mensagens manualmente às filas configuradas. Por exemplo:
http://localhost:3000/2012-11-05/queues/BroadcastSendQueue
Explicação sobre a Data no Endpoint
A data 2012-11-05 no endpoint refere-se à data da versão da API do SQS. A AWS lança versões datadas para suas APIs, e essa é a versão específica usada pelo plugin para emular o SQS localmente. Essa configuração é definida internamente pelo plugin serverless-offline-sqs e não requer alterações por parte do usuário.
Testar com o Postman
Para testar sua função Lambda localmente, siga os passos abaixo:
Configuração da Requisição no Postman
-
Crie uma nova requisição no Postman.
-
Defina o método HTTP:
POST -
Defina a URL:
http://localhost:3000/2012-11-05/queues/BroadcastSendQueue -
Adicione os Headers:
Content-Type:application/json
-
Defina o corpo (Body) no formato JSON. Exemplo:
{ "MessageBody": "{\"key\": \"value\"}" }O campo
MessageBodyé obrigatório e deve conter a mensagem que será enviada para a fila. -
Clique em "Send".
Configuração Adicional: Plugin serverless-offline-sqs
Para emular melhor o comportamento do SQS, recomendamos usar o plugin serverless-offline-sqs.
-
Instale o plugin:
npm install serverless-offline-sqs --save-dev -
Adicione o plugin no arquivo
serverless.yml:plugins: - serverless-webpack - serverless-webpack-prisma - serverless-offline - serverless-offline-sqs -
Configure o SQS no
customdoserverless.yml:custom: serverless-offline-sqs: autoCreate: true endpoint: http://localhost:9324 region: us-east-1 -
Reinicie o Serverless Offline:
npm run serverless:offline
Verificar a Execução
Ao enviar a mensagem para o endpoint local da fila no Postman, a função Lambda associada (é o caso da função broadcast) será acionada automaticamente. Confira os logs do terminal onde o serverless offline está rodando para verificar se a função foi executada corretamente e para depurar quaisquer erros.
Com essas etapas, você pode testar suas funções Lambda localmente antes de implantá-las na AWS.
https://app.cw2tecnologia.com.br/wiki/fab14d4f-c20e-11ef-9dd1-005056481eaa