SQS Admin Panel: painel serverless pra gerenciar filas SQS
SQS Admin Panel: painel serverless pra gerenciar filas SQS
Quem trabalha com Amazon SQS no dia a dia sabe que o console da AWS funciona, mas é lento pra tarefas operacionais. Quer dar um peek nas mensagens? São vários cliques. Precisa mover mensagens de uma DLQ de volta pra fila original? Mais cliques. Quer comparar métricas de várias filas ao mesmo tempo? Boa sorte.
O SQS Admin Panel nasceu dessa frustração. É um painel web 100% serverless que roda na sua conta AWS e te dá controle total sobre suas filas SQS com uma interface simples e direta.
O que ele faz?
O painel cobre praticamente tudo que você precisa pra operar filas SQS:
- Listar filas (Standard + FIFO) com métricas em tempo real
- Criar e deletar filas
- Editar atributos (visibility timeout, retention, redrive policy)
- Purgar filas
- Enviar mensagens (com suporte a FIFO group/dedup ID e delay)
- Envio em batch (JSON array)
- Peek de mensagens (visualizar sem remover da fila)
- Filtro de mensagens por conteúdo
- Deletar mensagens individuais
- Redrive de DLQ (reprocessar mensagens que falharam)
- Mover mensagens entre filas
- Export/Import de mensagens (JSON)
- Dashboard com KPIs e visão geral
Arquitetura
A stack é enxuta e usa apenas serviços gerenciados:
- Frontend: React + Vite, servido via S3 + CloudFront
- Backend: API Gateway + Lambda (Python), deployado com AWS SAM
- Auth: Amazon Cognito User Pool com JWT
- IaC: Um único
template.yamldo SAM define tudo
O backend é uma única Lambda com um handler que roteia por path e method. Sem frameworks, sem dependências além do boto3. O frontend é React puro com TypeScript.
A autenticação usa Cognito Authorizer no API Gateway. O frontend faz login via SRP auth e envia o JWT em cada request. No ambiente local, a auth é desabilitada automaticamente.
Dashboard
O dashboard mostra KPIs agregados de todas as filas:
- Total de filas (Standard e FIFO)
- Mensagens disponíveis, in-flight e delayed
- Mensagens em DLQs
- Tabela com todas as filas e seus atributos
- Seção dedicada pra Dead Letter Queues com mapeamento de source queues
O dashboard atualiza automaticamente a cada 10 segundos.
Redrive de DLQ
Uma das features mais úteis. Quando mensagens caem numa DLQ, o painel:
- Identifica automaticamente a fila de origem (via RedrivePolicy)
- Lê as mensagens da DLQ
- Envia de volta pra fila original
- Deleta da DLQ após confirmação
Funciona tanto pra filas Standard quanto FIFO (preservando MessageGroupId).
Export e Import
Precisa fazer backup das mensagens antes de purgar uma fila? Ou migrar mensagens entre ambientes?
- Export: lê as mensagens (sem deletar) e retorna um JSON
- Import: recebe um JSON array e envia as mensagens pra fila
Isso é especialmente útil pra debugging, quando você quer analisar mensagens de uma DLQ localmente.
Mover mensagens entre filas
Às vezes você precisa mover mensagens de uma fila pra outra, seja pra reprocessamento, seja pra migração. O painel faz isso atomicamente: lê da origem, envia pro destino e deleta da origem.
Ambiente local com Docker
O setup local é um docker compose up --build e pronto. Sobe três serviços:
- LocalStack (porta 4566): SQS emulado
- Backend (porta 3001): servidor Python que invoca o mesmo handler da Lambda
- Frontend (porta 5173): Vite dev server com proxy pro backend
Isso significa que você desenvolve e testa localmente com o mesmo código que roda na AWS. Sem mocks, sem stubs.
O projeto também inclui testes de integração que cobrem todo o CRUD de filas, envio/recebimento, batch, export/import, move, DLQ/redrive, purge e delete.
Deploy com um comando
./deploy.sh sqs-admin-panel admin@example.com
O script faz tudo:
sam build+sam deploy(Lambda, API Gateway, Cognito, S3, CloudFront)- Build do frontend com as variáveis do Cognito e API URL
- Upload do frontend pro S3
- Exibe a URL do painel
O admin recebe uma senha temporária por email via Cognito.
Segurança
Alguns pontos importantes sobre a segurança do painel:
- API protegida por Cognito Authorizer (JWT)
- Frontend servido via CloudFront (HTTPS)
- S3 bucket privado (acesso apenas via CloudFront OAC)
- Lambda com policy
sqs:*, que é intencional pra um painel de administração - CORS configurado no API Gateway
Como é um painel de admin, a policy sqs:* faz sentido. Mas o acesso é restrito a usuários autenticados no Cognito.
Limitações
- O peek de mensagens usa
ReceiveMessage+ChangeMessageVisibility(0), então em cenários de alta concorrência pode haver conflito com consumers reais - Export de mensagens grandes pode atingir o limite de payload do API Gateway (10MB)
- Não tem suporte a SNS ou EventBridge, é focado exclusivamente em SQS
Código fonte
O projeto é open source e está disponível no GitHub: github.com/crypto-br/sqs_admin_painel
Conclusão
O SQS Admin Panel resolve um problema real de quem opera filas SQS no dia a dia. Em vez de navegar pelo console da AWS pra cada operação, você tem um painel dedicado com todas as funcionalidades num lugar só. O deploy é simples, o ambiente local funciona com Docker e a arquitetura é 100% serverless.
Se você trabalha com SQS e quer uma ferramenta pra facilitar a operação, vale testar.