• สามารถสร้างสภาพแวดล้อมที่เข้ากันได้อย่างรวดเร็วสำหรับการพัฒนาแบบโลคัลและการทดสอบ CI/CD โดยไม่ต้องใช้ AWS จริง
  • ใช้ ไบนารีไฟล์เดียว เพื่อตั้งค่าสภาพแวดล้อมทดสอบแบบเบา ๆ ได้ และยังรันบน Docker ได้
  • ทำงานได้โดยไม่ต้องยืนยันตัวตน ช่วยลดภาระในการเตรียม AWS credentials ในอัตโนมัติไปป์ไลน์
  • รองรับ 76 บริการของ AWS อย่างกว้างขวาง และครอบคลุมส่วนสำคัญอย่าง S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS, RDS
  • โดยค่าเริ่มต้นทำงานที่ local AWS-compatible endpoint บน localhost:4566
  • เมื่อตั้งค่า KUMO_DATA_DIR จะสามารถ เก็บข้อมูลแบบเลือกได้ เป็นไฟล์ JSON แยกตามบริการ และหากไม่ตั้งค่าจะ รันแบบ in-memory ที่สะอาด
  • บันทึกทุกคำขอพร้อม structured log fields
    • INFO: HTTP method, path, status code, latency, request ID, ข้อมูล API target เป็นต้น
    • DEBUG: บันทึกได้ถึง request body ทั้งหมด จึงมีประโยชน์กับงานดีบักที่ต้องตรวจดู payload ของคำขอโดยตรง
  • มี endpoint เพิ่มเติมสำหรับการทดสอบ ภายใต้ /kumo/
    • แม้จะไม่ใช่ส่วนหนึ่งของ AWS API อย่างเป็นทางการ แต่มีประโยชน์ในการตรวจสอบการทำงานของแอปพลิเคชันระหว่างการทดสอบ
    • ดูอีเมลที่ส่งผ่าน SES v2

      • ใช้ GET /kumo/ses/v2/sent-emails เพื่อดูรายการอีเมลที่ส่งผ่าน SES v2 SendEmail API
      • การตอบกลับมี MessageId, ที่อยู่ผู้ส่ง, ผู้รับ, หัวเรื่อง, เนื้อหา, เวลาที่ส่ง เป็นต้น
    • ดูข้อความที่ส่งผ่าน Pinpoint SMS Voice v2

      • ใช้ GET /kumo/pinpointsmsvoicev2/sent-messages เพื่อดูรายการ SMS ที่ส่งผ่าน SendTextMessage API ได้
      • การตอบกลับมี MessageId, หมายเลขโทรศัพท์ผู้รับ, ตัวระบุผู้ส่ง, เนื้อความ, เวลาที่ส่ง เป็นต้น
    • มีประโยชน์อย่างยิ่งในการ ตรวจสอบผลลัพธ์ เวลาทดสอบฟีเจอร์ส่งอีเมลและข้อความ โดยไม่ต้องพึ่งพาบริการภายนอก
  • MIT License

บริการที่รองรับ

  • รองรับ 76 บริการของ AWS ทั้งหมด
  • 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
  • บริการอื่น ๆ

    • รองรับ Cost Explorer, DLM, Directory Service, EMR Serverless, FinSpace, GameLift, Resilience Hub

ตัวอย่างการใช้งาน

  • S3

    • ใน S3 client ให้ตั้งค่า BaseEndpoint เป็น http://localhost:4566 และเปิดใช้งาน UsePathStyle เพื่อเชื่อมต่อกับ local emulator
    • สามารถจำลอง การทดสอบ object storage โดยไม่ต้องใช้ AWS จริง ผ่านลำดับการสร้าง bucket ไปจนถึงอัปโหลด object
  • SQS

    • SQS client ก็ใช้ local endpoint เดียวกัน โดยเป็นลำดับการสร้างคิวแล้วส่งและรับข้อความ
    • เหมาะสำหรับตรวจสอบตรรกะ asynchronous messaging ใน local integration test
  • DynamoDB

    • สามารถจำลอง NoSQL workflow ได้ผ่านการสร้างตาราง กำหนด key schema และบันทึก item
    • ช่วยให้ตรวจสอบตรรกะการเข้าถึงข้อมูลของแอปพลิเคชันได้ง่าย โดยไม่ต้องใช้ทรัพยากรคลาวด์จริง
  • Secrets Manager

    • มีตัวอย่างการสร้างและดึงค่าความลับ จึงทดสอบ การเชื่อมต่อกับ secret store ได้
    • มีประโยชน์ในการตรวจสอบแอปพลิเคชันที่จัดการข้อมูลอ่อนไหวในรูปแบบ JSON บนเครื่องโลคัล

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น