Executando o Serverless Framework Offline: Um Guia Completo
No cenário atual de desenvolvimento, a arquitetura serverless (sem servidor) tem ganhado cada vez mais popularidade devido à sua flexibilidade e escalabilidade. Plataformas como AWS Lambda permitem que os desenvolvedores criem e implantem funções sem a necessidade de gerenciar a infraestrutura subjacente. Contudo, um dos desafios dessa abordagem é testar e depurar localmente sem precisar fazer o deploy na nuvem constantemente.
Felizmente, o Serverless Framework, uma ferramenta poderosa para a criação de aplicações serverless, oferece uma solução para isso com o plugin serverless-offline, que possibilita simular o ambiente de execução das funções Lambda no seu ambiente local.
Neste artigo, vamos explorar passo a passo como configurar e rodar o Serverless Framework offline, como se estivesse em um ambiente real de produção.
Instalação do Serverless Framework
Se você ainda não tem o Serverless Framework instalado, o primeiro passo é fazer a instalação via npm. O Serverless Framework facilita o desenvolvimento e a implantação de funções em diversas plataformas de cloud, sendo a AWS Lambda a mais comum.
Execute o seguinte comando no terminal:
npm i serverless -g
Como criar a sua aplicação serverless
serverless
Após digitar o comando acima a tela vai ficar dessa forma
Ele vai pedir o nome do projeto, ele vai pedir para logar no portal do serveless. Dai ele cria a aplicação.
Instalando o Plugin serverless-offline
Para executar suas funções Lambda localmente, precisaremos do plugin serverless-offline. Este plugin simula o ambiente AWS API Gateway e Lambda, permitindo que suas funções sejam invocadas localmente via HTTP.
No diretório do projeto, execute o comando:
npm install serverless-offline - save-dev
Na pasta serverless conforme imagem acima, entre na pasta “cd serverlesshttpapi”, digite “code .”
Configurando o Arquivo serverless.yml
Agora que temos o plugin instalado, precisamos configurá-lo no arquivo serverless.yml
, que é a peça central de configuração do Serverless Framework. Esse arquivo define as funções Lambda, eventos que as disparam, e também qualquer plugin que você queira utilizar.
Abra o arquivo serverless.yml
no editor de texto de sua preferência e adicione a seguinte configuração:
# "org" ensures this Service is used with the correct Serverless Framework Access Key.
org: acpereira
# "service" is the name of this project. This will also be added to your AWS resource names.
service: serverlesshttpapi
provider:
name: aws
runtime: nodejs20.x
functions:
hello:
handler: handler.hello
events:
- http:
path: /hello
method: get
plugins:
- serverless-offline
Escrevendo o Código da Função Lambda
Agora que configuramos o Serverless Framework, precisamos escrever a função Lambda que será executada. No arquivo handler.js
, que foi gerado automaticamente, adicione o seguinte código:
exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({
message: "Go Serverless v4! Your function executed successfully!",
}),
};
};
Esta função simples retorna uma resposta JSON com a mensagem "
Go Serverless v4! Your function executed successfully!"
quando chamada.
Executando o Projeto Localmente
Com o plugin configurado e a função Lambda escrita, estamos prontos para executar o projeto localmente. Para isso, use o comando: Mas antes eu configurei o package.json.
{
"scripts": {
"dev": "serverless offline start"
},
"dependencies": {
"serverless-offline": "^13.8.0"
}
}
npm run dev
Este comando inicia um servidor local que emula o AWS API Gateway, ouvindo as requisições HTTP. Por padrão, o servidor estará rodando no endereço http://localhost:3000
.
Se você acessar a URL http://localhost:3000/dev/hello
em seu navegador ou via curl no terminal, verá a resposta da função Lambda localmente:
curl http://localhost:3000/dev/hello
7. Conclusão
O Serverless Framework e o plugin serverless-offline facilitam o desenvolvimento e teste de aplicações serverless em um ambiente local. Com essa configuração, é possível iterar rapidamente no desenvolvimento sem a necessidade de fazer deploys constantes na AWS.
Este fluxo é particularmente útil durante o desenvolvimento inicial, quando mudanças rápidas e testes frequentes são necessários. Depois de testar tudo localmente, o Serverless Framework permite que você faça o deploy para a AWS de maneira muito simples, com apenas um comando:
serverless deploy
Essa abordagem híbrida entre local e cloud proporciona um ambiente de desenvolvimento mais eficiente, acelerando o processo de criação de soluções serverless robustas.
Se você tiver qualquer dúvida ou quiser explorar mais sobre o Serverless Framework, não hesite em deixar um comentário. Boas práticas de desenvolvimento são fundamentais para criar soluções escaláveis e de fácil manutenção!