kumo - emulator layanan AWS ringan yang ditulis dengan Go
(github.com/sivchari)- Dalam pengembangan lokal dan pengujian CI/CD, lingkungan yang kompatibel dapat disiapkan dengan cepat tanpa AWS sungguhan
- Dengan biner tunggal, lingkungan pengujian dapat disusun secara ringan, dan juga bisa dijalankan berbasis Docker
- Berjalan tanpa autentikasi, sehingga dapat mengurangi beban menyiapkan kredensial AWS dalam pipeline otomatisasi
- Mendukung 76 layanan AWS secara luas, sehingga dapat menangani area utama seperti S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS, dan RDS
- Secara default menyediakan endpoint lokal kompatibel AWS yang berjalan di
localhost:4566 - Jika
KUMO_DATA_DIRdiatur, persistensi data opsional dimungkinkan melalui file JSON per layanan; jika tidak diatur, maka akan berjalan bersih di memori - Mencatat semua permintaan bersama field log terstruktur
- INFO: metode HTTP, path, kode status, latensi, ID permintaan, informasi target API, dan lain-lain
- DEBUG: mencatat hingga seluruh body permintaan, berguna untuk debugging ketika perlu meninjau payload permintaan itu sendiri
- Menyediakan endpoint tambahan untuk pengujian di bawah
/kumo/- Bukan bagian dari API resmi AWS, tetapi berguna untuk memverifikasi perilaku aplikasi selama pengujian
-
Melihat email terkirim SES v2
- Melalui
GET /kumo/ses/v2/sent-emails, dapat melihat daftar email yang dikirim dengan API SES v2SendEmail - Respons mencakup MessageId, alamat pengirim, penerima, subjek, isi, waktu pengiriman, dan lain-lain
- Melalui
-
Melihat pesan terkirim Pinpoint SMS Voice v2
- Melalui
GET /kumo/pinpointsmsvoicev2/sent-messages, dapat melihat daftar SMS yang dikirim dengan APISendTextMessage - Respons mencakup MessageId, nomor telepon penerima, identitas pengirim, isi pesan, waktu pengiriman, dan lain-lain
- Melalui
- Sangat berguna untuk melakukan verifikasi hasil saat menguji fitur pengiriman email dan SMS tanpa ketergantungan pada layanan eksternal
- Lisensi MIT
Layanan yang didukung
- Mendukung total 76 layanan AWS
-
Penyimpanan
- Mendukung S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier, dan EBS
-
Komputasi
- Mendukung Lambda, Batch, EC2, dan Elastic Beanstalk
-
Kontainer
- Mendukung ECS, ECR, dan EKS
-
Database
- Mendukung RDS, Neptune, dan Redshift
-
Pesan dan integrasi
- Mendukung SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes, dan MSK
-
Keamanan dan ID
- Mendukung IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS, dan Macie
-
Pemantauan dan logging
- Mendukung CloudWatch, CloudWatch Logs, X-Ray, dan CloudTrail
-
Jaringan dan pengiriman konten
- Mendukung CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh, dan Location
-
Integrasi aplikasi
- Mendukung Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler, dan Amplify
-
Manajemen dan konfigurasi
- Mendukung SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections, dan Backup
-
Analitik dan ML
- Mendukung Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange, dan Entity Resolution
-
Alat pengembang
- Mendukung CodeGuru Profiler dan CodeGuru Reviewer
-
Layanan lainnya
- Mendukung Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift, dan Resilience Hub
Contoh penggunaan
-
S3
- Pada klien S3,
BaseEndpointdiatur kehttp://localhost:4566danUsePathStylediaktifkan untuk terhubung ke emulator lokal - Melalui alur mulai dari pembuatan bucket hingga unggah objek, pengujian object storage dapat direproduksi tanpa AWS sungguhan
- Pada klien S3,
-
SQS
- Klien SQS juga menggunakan endpoint lokal yang sama, dengan alur membuat queue lalu mengirim dan menerima pesan
- Cocok untuk memverifikasi logika messaging asinkron dalam pengujian integrasi lokal
-
DynamoDB
- Melalui pembuatan tabel, definisi skema kunci, dan penyimpanan item, workflow NoSQL dapat direproduksi
- Memudahkan pemeriksaan logika akses data aplikasi tanpa sumber daya cloud sungguhan
-
Secrets Manager
- Termasuk contoh pembuatan dan pengambilan nilai rahasia, sehingga integrasi penyimpanan secret juga dapat diuji
- Berguna untuk memverifikasi aplikasi yang menangani informasi sensitif berbentuk JSON secara lokal
Belum ada komentar.