kumo - Go में लिखा गया हल्का AWS service emulator
(github.com/sivchari)- लोकल development और CI/CD टेस्ट में वास्तविक AWS के बिना भी तेज़ी से compatible environment सेटअप किया जा सकता है
- single binary के रूप में हल्का test environment बनाया जा सकता है, और Docker-आधारित execution भी संभव है
- बिना authentication के चलता है, इसलिए automation pipeline में AWS credentials तैयार करने का बोझ कम हो सकता है
- 76 AWS services का व्यापक support देता है और S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS, RDS जैसे प्रमुख क्षेत्रों को साथ में संभाल सकता है
- डिफ़ॉल्ट रूप से
localhost:4566पर चलने वाला local AWS-compatible endpoint KUMO_DATA_DIRसेट करने पर service-वार JSON फ़ाइलों में optional data persistence संभव है, और सेट न होने पर clean in-memory mode में चलता है- सभी requests को structured log fields के साथ रिकॉर्ड करता है
- INFO: HTTP method, path, status code, latency, request ID, API target जानकारी आदि
- DEBUG: पूरा request body तक रिकॉर्ड करता है, इसलिए उन debugging tasks में उपयोगी है जहाँ request payload खुद देखना ज़रूरी हो
/kumo/के तहत अतिरिक्त test endpoints देता है- यह AWS official API का हिस्सा नहीं हैं, लेकिन testing के दौरान application behavior verify करने में उपयोगी हैं
-
SES v2 भेजे गए ईमेल देखना
GET /kumo/ses/v2/sent-emailsके जरिए SES v2SendEmailAPI से भेजे गए ईमेल की सूची देखी जा सकती है- response में MessageId, sender address, recipient, subject, body, sent time आदि शामिल होते हैं
-
Pinpoint SMS Voice v2 भेजे गए संदेश देखना
GET /kumo/pinpointsmsvoicev2/sent-messagesके जरिएSendTextMessageAPI से भेजे गए SMS की सूची देखी जा सकती है- response में MessageId, recipient phone number, sender identity, message body, sent time आदि शामिल होते हैं
- ईमेल और SMS sending features को test करते समय external services पर निर्भर हुए बिना result verification करने में खास तौर पर उपयोगी
- MIT License
समर्थित services
- कुल 76 AWS services समर्थित हैं
-
Storage
- S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier, EBS समर्थित हैं
-
Compute
- Lambda, Batch, EC2, Elastic Beanstalk समर्थित हैं
-
Containers
- ECS, ECR, EKS समर्थित हैं
-
Databases
- RDS, Neptune, Redshift समर्थित हैं
-
Messaging और integration
- SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes, MSK समर्थित हैं
-
Security और ID
- IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS, Macie समर्थित हैं
-
Monitoring और logging
- CloudWatch, CloudWatch Logs, X-Ray, CloudTrail समर्थित हैं
-
Networking और content delivery
- CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh, Location समर्थित हैं
-
Application integration
- Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler, Amplify समर्थित हैं
-
Management और configuration
- SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections, Backup समर्थित हैं
-
Analytics और ML
- Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange, Entity Resolution समर्थित हैं
-
Developer tools
- CodeGuru Profiler, CodeGuru Reviewer समर्थित हैं
-
अन्य services
- Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift, Resilience Hub समर्थित हैं
उपयोग उदाहरण
-
S3
- S3 client में
BaseEndpointकोhttp://localhost:4566पर सेट करके औरUsePathStyleको सक्रिय करके local emulator से connect किया जाता है - bucket बनाने से object upload तक के flow के जरिए वास्तविक AWS के बिना object storage testing को दोहराया जा सकता है
- S3 client में
-
SQS
- SQS client भी वही local endpoint इस्तेमाल करता है, और queue बनाने के बाद message send और receive करने का flow चलता है
- asynchronous messaging logic को local integration tests में verify करने के लिए उपयुक्त है
-
DynamoDB
- table creation, key schema definition और item storage की प्रक्रिया से NoSQL workflow को दोहराया जा सकता है
- वास्तविक cloud resources के बिना भी application की data access logic की जाँच करना आसान है
-
Secrets Manager
- secret value create और retrieve करने के उदाहरण शामिल हैं, इसलिए secret store integration भी test किया जा सकता है
- JSON रूप में sensitive information को लोकल पर संभालने वाले applications की जाँच में उपयोगी है
अभी कोई टिप्पणी नहीं है.