kumo - emulador leve de serviços AWS escrito em Go
(github.com/sivchari)- Permite montar rapidamente um ambiente compatível para desenvolvimento local e testes de CI/CD sem precisar da AWS real
- Com um binário único, é possível preparar um ambiente de testes leve, e também é possível executar com base em Docker
- Funciona sem autenticação, o que pode reduzir a carga de preparar credenciais AWS em pipelines de automação
- Oferece amplo suporte a 76 serviços AWS e permite trabalhar com áreas principais como S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS e RDS
- Endpoint local compatível com AWS que funciona por padrão em
localhost:4566 - Ao configurar
KUMO_DATA_DIR, é possível ter persistência opcional de dados em arquivos JSON por serviço; se não for configurado, ele roda limpo em memória - Registra todas as requisições com campos de log estruturados
- INFO: método HTTP, caminho, código de status, latência, ID da requisição, informações do alvo da API etc.
- DEBUG: registra até mesmo o corpo completo da requisição, sendo útil para tarefas de depuração em que é preciso inspecionar o próprio payload da requisição
- Fornece endpoints adicionais para testes em
/kumo/- Não fazem parte da API oficial da AWS, mas são úteis para validar o comportamento da aplicação durante os testes
-
Consulta de e-mails enviados no SES v2
- Com
GET /kumo/ses/v2/sent-emails, é possível consultar a lista de e-mails enviados pela APISendEmaildo SES v2 - Resposta: inclui MessageId, endereço do remetente, destinatários, assunto, corpo, horário de envio etc.
- Com
-
Consulta de mensagens enviadas no Pinpoint SMS Voice v2
- Com
GET /kumo/pinpointsmsvoicev2/sent-messages, é possível consultar a lista de SMS enviados pela APISendTextMessage - Resposta: inclui MessageId, número de telefone de destino, identificador do remetente, corpo da mensagem, horário de envio etc.
- Com
- Especialmente útil para realizar a validação de resultados ao testar recursos de envio de e-mail e SMS sem depender de serviços externos
- Licença MIT
Serviços suportados
- Suporta um total de 76 serviços AWS
-
Armazenamento
- Suporte a S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier e EBS
-
Computação
- Suporte a Lambda, Batch, EC2 e Elastic Beanstalk
-
Contêineres
- Suporte a ECS, ECR e EKS
-
Bancos de dados
- Suporte a RDS, Neptune e Redshift
-
Mensageria e integração
- Suporte a SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes e MSK
-
Segurança e identidade
- Suporte a IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS e Macie
-
Monitoramento e logging
- Suporte a CloudWatch, CloudWatch Logs, X-Ray e CloudTrail
-
Rede e entrega de conteúdo
- Suporte a CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh e Location
-
Integração de aplicações
- Suporte a Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler e Amplify
-
Gerenciamento e configuração
- Suporte a SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections e Backup
-
Análise e ML
- Suporte a Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange e Entity Resolution
-
Ferramentas para desenvolvedores
- Suporte a CodeGuru Profiler e CodeGuru Reviewer
-
Outros serviços
- Suporte a Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift e Resilience Hub
Exemplos de uso
-
S3
- No cliente S3, o
BaseEndpointé configurado comohttp://localhost:4566eUsePathStyleé ativado para conectar ao emulador local - Pelo fluxo que vai da criação do bucket até o upload de objetos, é possível reproduzir testes de armazenamento de objetos sem a AWS real
- No cliente S3, o
-
SQS
- O cliente SQS também usa o mesmo endpoint local, em um fluxo que cria a fila e depois envia e recebe mensagens
- É adequado para validar lógica de mensageria assíncrona em testes locais de integração
-
DynamoDB
- É possível reproduzir um workflow NoSQL por meio da criação de tabela, definição do esquema de chaves e armazenamento de itens
- Facilita verificar a lógica de acesso a dados da aplicação mesmo sem recursos reais na nuvem
-
Secrets Manager
- Inclui exemplos de criação e consulta de valores secretos, permitindo testar também a integração com repositório de segredos
- Útil para validar aplicações que lidam localmente com informações sensíveis em formato JSON
Ainda não há comentários.