Executando o Serverless Framework Offline: Um Guia Completo

Anderson L Pereira
4 min readSep 21, 2024

--

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!

--

--

No responses yet