kumo - émulateur léger de services AWS écrit en Go
(github.com/sivchari)- Permet de mettre rapidement en place un environnement compatible en développement local et pour les tests CI/CD, même sans AWS réel
- Il est possible de configurer un environnement de test léger avec un binaire unique, avec aussi une exécution basée sur Docker
- Fonctionne sans authentification, ce qui peut réduire la charge liée à la préparation des identifiants AWS dans les pipelines d’automatisation
- Prend largement en charge 76 services AWS et couvre notamment des domaines clés comme S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS et RDS
- Endpoint AWS compatible local fonctionnant par défaut sur
localhost:4566 - Si
KUMO_DATA_DIRest configuré, une persistance optionnelle des données est possible via des fichiers JSON par service ; s’il ne l’est pas, l’exécution se fait proprement en mémoire - Toutes les requêtes sont enregistrées avec des champs de logs structurés
- INFO : méthode HTTP, chemin, code de statut, latence, ID de requête, informations sur la cible API, etc.
- DEBUG : enregistre jusqu’au corps complet de la requête, utile pour les opérations de débogage où il faut inspecter la payload elle-même
- Fournit des endpoints supplémentaires pour les tests sous
/kumo/- Ils ne font pas partie de l’API officielle AWS, mais sont utiles pour vérifier le comportement de l’application pendant les tests
-
Consultation des e-mails envoyés via SES v2
GET /kumo/ses/v2/sent-emailspermet de consulter la liste des e-mails envoyés via l’API SES v2SendEmail- Réponse : inclut MessageId, adresse d’expéditeur, destinataires, objet, corps, date et heure d’envoi, etc.
-
Consultation des messages envoyés via Pinpoint SMS Voice v2
GET /kumo/pinpointsmsvoicev2/sent-messagespermet de consulter la liste des SMS envoyés via l’APISendTextMessage- Réponse : inclut MessageId, numéro de téléphone du destinataire, identifiant d’expéditeur, corps du message, date et heure d’envoi, etc.
- Particulièrement utile pour vérifier les résultats lors des tests de fonctionnalités d’envoi d’e-mails et de SMS, sans dépendre de services externes
- Licence MIT
Services pris en charge
- Prend en charge un total de 76 services AWS
-
Stockage
- Prise en charge de S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier et EBS
-
Compute
- Prise en charge de Lambda, Batch, EC2 et Elastic Beanstalk
-
Conteneurs
- Prise en charge de ECS, ECR et EKS
-
Bases de données
- Prise en charge de RDS, Neptune et Redshift
-
Messagerie et intégration
- Prise en charge de SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes et MSK
-
Sécurité et identité
- Prise en charge de IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS et Macie
-
Monitoring et logs
- Prise en charge de CloudWatch, CloudWatch Logs, X-Ray et CloudTrail
-
Réseau et diffusion de contenu
- Prise en charge de CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh et Location
-
Intégration applicative
- Prise en charge de Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler et Amplify
-
Gestion et configuration
- Prise en charge de SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections et Backup
-
Analyse et ML
- Prise en charge de Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange et Entity Resolution
-
Outils développeur
- Prise en charge de CodeGuru Profiler et CodeGuru Reviewer
-
Autres services
- Prise en charge de Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift et Resilience Hub
Exemples d’utilisation
-
S3
- Côté client S3, il s’agit de définir
BaseEndpointsurhttp://localhost:4566et d’activerUsePathStylepour se connecter à l’émulateur local - Le flux allant de la création d’un bucket jusqu’à l’upload d’un objet permet de reproduire des tests de stockage objet sans AWS réel
- Côté client S3, il s’agit de définir
-
SQS
- Le client SQS utilise lui aussi le même endpoint local, avec un flux de création de file puis d’envoi et de réception de messages
- Adapté à la validation d’une logique de messagerie asynchrone dans des tests d’intégration locaux
-
DynamoDB
- La création de table, la définition du schéma de clés et l’enregistrement d’items permettent de reproduire un workflow NoSQL
- Il est facile de vérifier la logique d’accès aux données de l’application sans ressources cloud réelles
-
Secrets Manager
- Inclut des exemples de création et de consultation de valeurs secrètes, ce qui permet aussi de tester l’intégration à un coffre de secrets
- Utile pour valider localement des applications manipulant des informations sensibles au format JSON
Aucun commentaire pour le moment.