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 de AWS real
- Com um binário único, dá para preparar um ambiente de testes leve, e também é possível executar com Docker
- Funciona sem autenticação, reduzindo o trabalho de preparar credenciais AWS em pipelines de automação
- Oferece suporte amplo a 76 serviços AWS e cobre áreas principais como S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS e RDS
- Por padrão, fornece um endpoint local compatível com AWS 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, roda em memória limpa - 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é o corpo completo da requisição, útil para depuração quando é preciso inspecionar o payload enviado
- 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
- É possível consultar a lista de e-mails enviados pela API SES v2
SendEmailviaGET /kumo/ses/v2/sent-emails - Resposta: inclui MessageId, endereço do remetente, destinatários, assunto, corpo, horário de envio etc.
- É possível consultar a lista de e-mails enviados pela API SES v2
-
Consulta de mensagens enviadas no Pinpoint SMS Voice v2
- É possível consultar a lista de SMS enviados pela API
SendTextMessageviaGET /kumo/pinpointsmsvoicev2/sent-messages - Resposta: inclui MessageId, número de telefone do destinatário, identificador do remetente, corpo da mensagem, horário de envio etc.
- É possível consultar a lista de SMS enviados pela API
- Especialmente útil para validar resultados ao testar envio de e-mails e SMS sem depender de serviços externos
- Licença MIT
Serviços suportados
- Suporta um total de 76 serviços AWS
-
Armazenamento
- Suporta S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier e EBS
-
Computação
- Suporta Lambda, Batch, EC2 e Elastic Beanstalk
-
Contêineres
- Suporta ECS, ECR e EKS
-
Bancos de dados
- Suporta RDS, Neptune e Redshift
-
Mensageria e integração
- Suporta SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes e MSK
-
Segurança e identidade
- Suporta IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS e Macie
-
Monitoramento e logs
- Suporta CloudWatch, CloudWatch Logs, X-Ray e CloudTrail
-
Redes e entrega de conteúdo
- Suporta CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh e Location
-
Integração de aplicações
- Suporta Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler e Amplify
-
Gerenciamento e configuração
- Suporta SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections e Backup
-
Analytics e ML
- Suporta Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange e Entity Resolution
-
Ferramentas para desenvolvedores
- Suporta CodeGuru Profiler e CodeGuru Reviewer
-
Outros serviços
- Suporta Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift e Resilience Hub
Exemplos de uso
-
S3
- No cliente S3, defina
BaseEndpointcomohttp://localhost:4566e ativeUsePathStylepara conectar ao emulador local - O fluxo que vai da criação do bucket ao upload do objeto permite reproduzir testes de armazenamento de objetos sem AWS real
- No cliente S3, defina
-
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 de integração locais
-
DynamoDB
- É possível reproduzir um workflow NoSQL por meio da criação de tabela, definição do esquema de chaves e gravação de itens
- Facilita verificar a lógica de acesso a dados da aplicação sem depender de recursos reais em nuvem
-
Secrets Manager
- Inclui exemplos de criação e consulta de segredos, então também dá para testar 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.