kumo - Go ile yazılmış hafif bir AWS hizmet emülatörü
(github.com/sivchari)- Yerel geliştirme ve CI/CD testlerinde gerçek AWS olmadan da hızlıca uyumlu bir ortam kurulabilir
- Tek bir binary ile hafif bir test ortamı hazırlanabilir; Docker tabanlı çalıştırma da mümkündür
- Kimlik doğrulama olmadan çalışır, böylece otomasyon pipeline'larında AWS kimlik bilgileri hazırlama yükünü azaltabilir
- 76 AWS hizmetini geniş kapsamda destekler; S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS ve RDS gibi başlıca alanları birlikte ele alabilir
- Varsayılan olarak
localhost:4566üzerinde çalışan yerel AWS uyumlu endpoint KUMO_DATA_DIRayarlandığında hizmet bazlı JSON dosyalarıyla isteğe bağlı veri kalıcılığı sağlanabilir; ayarlanmazsa temiz bir in-memory çalışma sunar- Tüm istekleri yapılandırılmış log alanları ile birlikte kaydeder
- INFO: HTTP metodu, yol, durum kodu, gecikme süresi, istek ID'si, API hedef bilgileri vb.
- DEBUG: istek gövdesinin tamamını da kaydeder; bu nedenle istek payload'unun kendisini incelemek gereken debug işleri için faydalıdır
/kumo/altında ek test endpoint'leri sunar- AWS resmi API'sinin bir parçası değildir, ancak test sırasında uygulama davranışını doğrulamak için faydalıdır
-
SES v2 gönderilen e-postaları görüntüleme
GET /kumo/ses/v2/sent-emailsile SES v2SendEmailAPI üzerinden gönderilen e-posta listesi görüntülenebilir- Yanıt: MessageId, gönderen adresi, alıcılar, konu, gövde, gönderim zamanı vb. içerir
-
Pinpoint SMS Voice v2 gönderilen mesajları görüntüleme
GET /kumo/pinpointsmsvoicev2/sent-messagesileSendTextMessageAPI üzerinden gönderilen SMS listesini görüntüleyebilirsiniz- Yanıt: MessageId, alıcı telefon numarası, gönderici tanımlayıcısı, mesaj gövdesi, gönderim zamanı vb. içerir
- E-posta ve SMS gönderim özelliklerini test ederken dış hizmet bağımlılığı olmadan sonuç doğrulaması yapmak için özellikle faydalıdır
- MIT License
Desteklenen hizmetler
- Toplam 76 AWS hizmeti desteklenir
-
Depolama
- S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier ve EBS desteklenir
-
Hesaplama
- Lambda, Batch, EC2 ve Elastic Beanstalk desteklenir
-
Container
- ECS, ECR ve EKS desteklenir
-
Veritabanı
- RDS, Neptune ve Redshift desteklenir
-
Mesajlaşma ve entegrasyon
- SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes ve MSK desteklenir
-
Güvenlik ve kimlik
- IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS ve Macie desteklenir
-
İzleme ve loglama
- CloudWatch, CloudWatch Logs, X-Ray ve CloudTrail desteklenir
-
Ağ ve içerik dağıtımı
- CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh ve Location desteklenir
-
Uygulama entegrasyonu
- Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler ve Amplify desteklenir
-
Yönetim ve yapılandırma
- SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections ve Backup desteklenir
-
Analitik ve ML
- Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange ve Entity Resolution desteklenir
-
Geliştirici araçları
- CodeGuru Profiler ve CodeGuru Reviewer desteklenir
-
Diğer hizmetler
- Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift ve Resilience Hub desteklenir
Kullanım örnekleri
-
S3
- S3 istemcisinde
BaseEndpointdeğerinihttp://localhost:4566olarak ayarlayıpUsePathStyleseçeneğini etkinleştirerek yerel emülatöre bağlanma yöntemi kullanılır - Bucket oluşturma ve ardından nesne yükleme akışı sayesinde obje depolama testleri gerçek AWS olmadan yeniden üretilebilir
- S3 istemcisinde
-
SQS
- SQS istemcisi de aynı yerel endpoint'i kullanır; kuyruk oluşturduktan sonra mesaj gönderme ve alma akışı gerçekleştirilir
- Asenkron mesajlaşma mantığını yerel entegrasyon testlerinde doğrulamak için uygundur
-
DynamoDB
- Tablo oluşturma, anahtar şeması tanımlama ve öğe kaydetme süreçleriyle NoSQL iş akışı yeniden üretilebilir
- Gerçek bulut kaynakları olmadan da uygulamanın veri erişim mantığını kontrol etmek kolaydır
-
Secrets Manager
- Gizli değer oluşturma ve sorgulama örnekleri içerdiği için secret store entegrasyonu da test edilebilir
- JSON biçimindeki hassas bilgileri yerelde işleyen uygulamaları doğrulamak için faydalıdır
Henüz yorum yok.