kumo - emulador ligero de servicios de AWS escrito en Go
(github.com/sivchari)- Permite configurar rápidamente un entorno compatible para desarrollo local y pruebas de CI/CD sin usar AWS real
- Con un binario único se puede montar un entorno de pruebas liviano, y también puede ejecutarse sobre Docker
- Funciona sin autenticación, por lo que puede reducir la carga de preparar credenciales de AWS en pipelines de automatización
- Ofrece soporte amplio para 76 servicios de AWS, y permite cubrir áreas clave como S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS y RDS
- Un endpoint local compatible con AWS que funciona por defecto en
localhost:4566 - Si se configura
KUMO_DATA_DIR, permite persistencia opcional de datos en archivos JSON por servicio; si no se configura, se ejecuta limpio en memoria - Registra todas las solicitudes junto con campos de log estructurados
- INFO: método HTTP, ruta, código de estado, latencia, ID de solicitud, información del destino de la API, etc.
- DEBUG: registra incluso el cuerpo completo de la solicitud, lo que resulta útil para tareas de depuración donde hace falta inspeccionar el payload enviado
- Proporciona endpoints adicionales para pruebas bajo
/kumo/- No forman parte de la API oficial de AWS, pero son útiles para validar el comportamiento de la aplicación durante las pruebas
-
Consulta de correos enviados por SES v2
- A través de
GET /kumo/ses/v2/sent-emailsse puede consultar la lista de correos enviados mediante la API SES v2SendEmail - Respuesta: incluye MessageId, dirección remitente, destinatarios, asunto, cuerpo, hora de envío, etc.
- A través de
-
Consulta de mensajes enviados por Pinpoint SMS Voice v2
- A través de
GET /kumo/pinpointsmsvoicev2/sent-messagesse puede consultar la lista de SMS enviados mediante la APISendTextMessage - Respuesta: incluye MessageId, número de teléfono del destinatario, identificador del remitente, cuerpo del mensaje, hora de envío, etc.
- A través de
- Es especialmente útil para verificar resultados al probar funciones de envío de correo y SMS sin depender de servicios externos
- MIT License
Servicios compatibles
- Compatible con un total de 76 servicios de AWS
-
Almacenamiento
- Soporta S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier y EBS
-
Cómputo
- Soporta Lambda, Batch, EC2 y Elastic Beanstalk
-
Contenedores
- Soporta ECS, ECR y EKS
-
Bases de datos
- Soporta RDS, Neptune y Redshift
-
Mensajería e integración
- Soporta SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes y MSK
-
Seguridad e identidad
- Soporta IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS y Macie
-
Monitoreo y logging
- Soporta CloudWatch, CloudWatch Logs, X-Ray y CloudTrail
-
Redes y entrega de contenido
- Soporta CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh y Location
-
Integración de aplicaciones
- Soporta Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler y Amplify
-
Administración y configuración
- Soporta SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections y Backup
-
Analítica y ML
- Soporta Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange y Entity Resolution
-
Herramientas para desarrolladores
- Soporta CodeGuru Profiler y CodeGuru Reviewer
-
Otros servicios
- Soporta Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift y Resilience Hub
Ejemplos de uso
-
S3
- En el cliente de S3, se configura
BaseEndpointcomohttp://localhost:4566y se activaUsePathStylepara conectarse al emulador local - Mediante el flujo que va desde la creación de un bucket hasta la carga de objetos, se pueden reproducir pruebas de almacenamiento de objetos sin AWS real
- En el cliente de S3, se configura
-
SQS
- El cliente de SQS también usa el mismo endpoint local, en un flujo donde se crea una cola y luego se envían y reciben mensajes
- Es adecuado para validar lógica de mensajería asíncrona en pruebas de integración locales
-
DynamoDB
- Mediante la creación de tablas, la definición del esquema de claves y el almacenamiento de ítems, se puede reproducir un flujo de trabajo NoSQL
- Facilita revisar la lógica de acceso a datos de la aplicación incluso sin recursos reales en la nube
-
Secrets Manager
- Incluye ejemplos de creación y consulta de secretos, por lo que también permite probar la integración con un almacén de secretos
- Es útil para validar aplicaciones que manejan información sensible en formato JSON de manera local
Aún no hay comentarios.