kumo - Trình giả lập dịch vụ AWS gọn nhẹ viết bằng Go
(github.com/sivchari)- Có thể nhanh chóng thiết lập môi trường tương thích cho phát triển cục bộ và kiểm thử CI/CD mà không cần AWS thực tế
- Có thể dựng môi trường kiểm thử nhẹ bằng một file nhị phân duy nhất, đồng thời cũng hỗ trợ chạy dựa trên Docker
- Hoạt động không cần xác thực, giúp giảm gánh nặng chuẩn bị thông tin xác thực AWS trong các pipeline tự động hóa
- Hỗ trợ rộng rãi 76 dịch vụ AWS, bao phủ các mảng quan trọng như S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS và RDS
- Mặc định hoạt động tại endpoint tương thích AWS cục bộ là
localhost:4566 - Khi cấu hình
KUMO_DATA_DIR, có thể lưu trữ dữ liệu tùy chọn dưới dạng file JSON theo từng dịch vụ; nếu không cấu hình thì sẽ chạy sạch trên in-memory - Ghi lại mọi yêu cầu cùng với các trường log có cấu trúc
- INFO: phương thức HTTP, đường dẫn, mã trạng thái, độ trễ, request ID, thông tin API target, v.v.
- DEBUG: ghi cả toàn bộ nội dung request body, hữu ích cho các tác vụ debug cần xem trực tiếp payload của yêu cầu
- Cung cấp các endpoint bổ sung cho kiểm thử dưới
/kumo/- Không thuộc một phần của API chính thức của AWS, nhưng hữu ích để xác minh hành vi của ứng dụng trong lúc kiểm thử
-
Tra cứu email đã gửi của SES v2
- Có thể xem danh sách email được gửi qua API SES v2
SendEmailbằngGET /kumo/ses/v2/sent-emails - Phản hồi bao gồm MessageId, địa chỉ người gửi, người nhận, tiêu đề, nội dung, thời điểm gửi, v.v.
- Có thể xem danh sách email được gửi qua API SES v2
-
Tra cứu tin nhắn đã gửi của Pinpoint SMS Voice v2
- Có thể xem danh sách SMS đã gửi qua API
SendTextMessagebằngGET /kumo/pinpointsmsvoicev2/sent-messages - Phản hồi bao gồm MessageId, số điện thoại người nhận, định danh người gửi, nội dung tin nhắn, thời điểm gửi, v.v.
- Có thể xem danh sách SMS đã gửi qua API
- Đặc biệt hữu ích để xác minh kết quả khi kiểm thử chức năng gửi email và SMS mà không phụ thuộc vào dịch vụ bên ngoài
- MIT License
Dịch vụ được hỗ trợ
- Hỗ trợ tổng cộng 76 dịch vụ AWS
-
Lưu trữ
- Hỗ trợ S3, S3 Control, S3 Tables, DynamoDB, ElastiCache, MemoryDB, Glacier và EBS
-
Tính toán
- Hỗ trợ Lambda, Batch, EC2 và Elastic Beanstalk
-
Container
- Hỗ trợ ECS, ECR và EKS
-
Cơ sở dữ liệu
- Hỗ trợ RDS, Neptune và Redshift
-
Nhắn tin và tích hợp
- Hỗ trợ SQS, SNS, EventBridge, Kinesis, Firehose, MQ, Pipes và MSK
-
Bảo mật và định danh
- Hỗ trợ IAM, KMS, Secrets Manager, ACM, Cognito, Security Lake, STS và Macie
-
Giám sát và ghi log
- Hỗ trợ CloudWatch, CloudWatch Logs, X-Ray và CloudTrail
-
Mạng và phân phối nội dung
- Hỗ trợ CloudFront, Global Accelerator, API Gateway, Route 53, Route 53 Resolver, ELBv2, App Mesh và Location
-
Tích hợp ứng dụng
- Hỗ trợ Step Functions, AppSync, SES v2, Pinpoint SMS Voice v2, Scheduler và Amplify
-
Quản lý và cấu hình
- Hỗ trợ SSM, Config, CloudFormation, Organizations, Service Quotas, CodeConnections và Backup
-
Phân tích và ML
- Hỗ trợ Athena, Glue, Comprehend, Rekognition, SageMaker, Forecast, Data Exchange và Entity Resolution
-
Công cụ cho nhà phát triển
- Hỗ trợ CodeGuru Profiler và CodeGuru Reviewer
-
Các dịch vụ khác
- Hỗ trợ Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift và Resilience Hub
Ví dụ sử dụng
-
S3
- Trong S3 client, đặt
BaseEndpointthànhhttp://localhost:4566và bậtUsePathStyleđể kết nối tới trình giả lập cục bộ - Qua luồng từ tạo bucket đến tải object lên, có thể tái hiện kiểm thử object storage mà không cần AWS thực tế
- Trong S3 client, đặt
-
SQS
- SQS client cũng dùng cùng endpoint cục bộ đó, với luồng tạo queue rồi gửi và nhận message
- Phù hợp để kiểm chứng logic nhắn tin bất đồng bộ trong kiểm thử tích hợp cục bộ
-
DynamoDB
- Có thể tái hiện workflow NoSQL thông qua việc tạo bảng, định nghĩa key schema và lưu item
- Giúp dễ dàng kiểm tra logic truy cập dữ liệu của ứng dụng mà không cần tài nguyên cloud thực tế
-
Secrets Manager
- Bao gồm ví dụ tạo và truy vấn giá trị bí mật, nên cũng có thể kiểm thử tích hợp kho lưu trữ secret
- Hữu ích để kiểm chứng ứng dụng xử lý thông tin nhạy cảm dạng JSON ở môi trường cục bộ
Chưa có bình luận nào.