Skip to content

matheusbuniotto/localstack-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LocalStack - Ambiente de Desenvolvimento Local

Este projeto configura um ambiente de desenvolvimento local usando LocalStack para simular serviços AWS com a arquitetura descrita abaixo:

Arquitetura

Upload de Arquivo → S3 (input-bucket) → SNS (input-topic) → SQS (input-queue) → [Processamento Lambda] → SNS (output-topic) & S3 (output-bucket) → SQS (output-queue)

Serviços Configurados

  • S3: input-bucket, output-bucket
  • SNS: input-topic, output-topic
  • SQS: input-queue, output-queue
  • Secrets Manager: api-keys

Pré-requisitos

  • Docker
  • Docker Compose
  • AWS CLI

Início Rápido

1. Clonar o repositório

git clone matheusbuniotto/localstack-dev
cd localstack-dev

2. Iniciar o ambiente

./start.sh

Este script irá:

  • Iniciar o container LocalStack
  • Criar todos os recursos AWS (S3, SNS, SQS, Secrets Manager)
  • Configurar as notificações de eventos
  • Configurar as assinaturas SNS → SQS

3. Verificar se está funcionando

# Testar upload para S3 (isso deve disparar o fluxo completo)
echo "Arquivo de teste" > test.txt
aws s3 cp test.txt s3://input-bucket/ --endpoint-url=http://localhost:4566

# Verificar se a mensagem chegou na fila de entrada
aws sqs receive-message --queue-url http://sqs.us-east-1.localhost.localstack.cloud:4566/000000000000/input-queue --endpoint-url=http://localhost:4566

Configuração Manual

Se preferir executar os passos manualmente:

1. Iniciar LocalStack

docker compose up -d

2. Configurar infraestrutura

./scripts/setup-infrastructure.sh

3. Configurar eventos

./scripts/configure-events.sh

Variáveis de Ambiente

As configurações estão no arquivo .env-dev:

  • AWS_ENDPOINT_URL: http://localhost:4566
  • AWS_ACCESS_KEY_ID: test
  • AWS_SECRET_ACCESS_KEY: test
  • Nomes dos recursos AWS

Comandos Úteis

Verificar status dos serviços

curl http://localhost:4566/_localstack/health

Listar recursos

# S3 buckets
aws s3 ls --endpoint-url=http://localhost:4566

# SNS topics
aws sns list-topics --endpoint-url=http://localhost:4566

# SQS queues
aws sqs list-queues --endpoint-url=http://localhost:4566

# Secrets
aws secretsmanager list-secrets --endpoint-url=http://localhost:4566

Testar fluxo completo

# 1. Upload para S3
aws s3 cp arquivo.txt s3://input-bucket/ --endpoint-url=http://localhost:4566

# 2. Verificar mensagem na fila de entrada
aws sqs receive-message --queue-url http://sqs.us-east-1.localhost.localstack.cloud:4566/000000000000/input-queue --endpoint-url=http://localhost:4566

# 3. Simular processamento - publicar na saída
aws sns publish --topic-arn arn:aws:sns:us-east-1:000000000000:output-topic --message "Processamento concluído" --endpoint-url=http://localhost:4566

# 4. Verificar mensagem na fila de saída
aws sqs receive-message --queue-url http://sqs.us-east-1.localhost.localstack.cloud:4566/000000000000/output-queue --endpoint-url=http://localhost:4566

Parar o Ambiente

docker compose down

Estrutura do Projeto

localstack-dev/
├── docker-compose.yml      # Configuração do LocalStack
├── start.sh               # Script de inicialização
├── .env-dev              # Variáveis de ambiente
├── scripts/
│   ├── setup-infrastructure.sh  # Criação dos recursos AWS
│   └── configure-events.sh     # Configuração dos eventos
└── README.md             # Este arquivo

Próximos Passos

  • Integração com código Lambda (repositório separado)
  • Testes automatizados do fluxo completo

About

Ambiente de desenvolvimento LocalStack com AWS services (S3, SNS, SQS, Secrets Manager) para MVP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors