สถาปัตยกรรม Event-Driven ด้วย Event Grid

พัฒนาแอปพลิเคชันบน Azure Storage

Shahzad Mian

Content Developer, DataCamp

แนะนำสถาปัตยกรรม Event-Driven

 

Screenshot 2025-10-26 at 10.35.27 pm.png

  • ระบบสมัยใหม่สร้าง event ตลอดเวลา
  • Azure Event Grid เชื่อม event เหล่านั้นไปยังบริการที่เหมาะสมแบบทันที
  • คือแกนหลักของสถาปัตยกรรม event-driven บน Azure
พัฒนาแอปพลิเคชันบน Azure Storage

สถาปัตยกรรม Event-Driven

  • อธิบายว่า Azure Event Grid คืออะไรและทำงานอย่างไร
    • ระบุ event source และ handler
    • อธิบายว่า Event Grid รองรับ workflow แบบ event-driven แบบ real-time อย่างไร
    • นำแนวคิดเหล่านี้ไปใช้กับการดำเนินงานของ Cipher Coffee

 

 

Event grid

1 https://azure.microsoft.com/en-us/blog/introducing-azure-event-grid-an-event-service-for-modern-applications/
พัฒนาแอปพลิเคชันบน Azure Storage

ปัญหา: trigger มากเกินไป

Screenshot 2025-10-27 at 6.41.44 pm.png

  • ระบบของ Cipher Coffee สร้าง event อย่างต่อเนื่อง

    • มีการอัปโหลด blob ใหม่
    • มีการสั่งซื้อเกิดขึ้น
    • ข้อมูล inventory เปลี่ยนแปลง
  • Polling คือการที่แอปพลิเคชันคอยตรวจสอบการอัปเดตซ้ำๆ อยู่ตลอดเวลา

พัฒนาแอปพลิเคชันบน Azure Storage

Event Grid

Event grid image

 

 

 

  • Event Grid แก้ปัญหานี้ด้วยการส่ง notification แบบ real-time
พัฒนาแอปพลิเคชันบน Azure Storage

Event Grid คืออะไร?

Event grid diagram

  • Azure Event Grid คือ บริการ routing event ที่จัดการให้ทั้งหมด
  • ส่ง event จาก publisher ไปยัง subscriber โดยอัตโนมัติ

  • ใช้รูปแบบ publish-subscribe:

    • Publisher ปล่อย event (เช่น Blob created)
    • Subscriber ตอบสนองต่อ event เหล่านั้นแบบ real-time
  • Subscriber ที่พบบ่อย ได้แก่ Azure Functions และ Logic Apps

พัฒนาแอปพลิเคชันบน Azure Storage

Event workflow

  • Publisher สร้าง event เช่น การสร้าง blob ใหม่
  • Event Grid รับ event นั้นและส่งต่อไปยัง subscriber
  • Subscriber เช่น Azure Function หรือ Logic App ทำงานโดยอัตโนมัติ
  • การเชื่อมต่อแต่ละรายการเรียกว่า Event Subscription

Event workflow

พัฒนาแอปพลิเคชันบน Azure Storage

ตัวอย่างจาก Cipher Coffee

  • ทีมการตลาดของ Cipher Coffee อัปโหลดภาพสินค้าใหม่ไปยัง Blob Storage
  • การอัปโหลดนั้น trigger Event Grid
  • Event Grid ส่ง notification ไปยัง Azure Function
  • Function ย่อขนาดรูปและอัปเดต gallery บนเว็บไซต์โดยอัตโนมัติ
  • ไม่ต้องดำเนินการใดๆ ด้วยตนเอง ทุกอย่างเกิดขึ้นทันที

Cipher Coffee example

พัฒนาแอปพลิเคชันบน Azure Storage

Event source และ handler

Screenshot 2025-10-27 at 7.16.33 pm.png

  • Event Sources: แหล่งกำเนิดของ event
    • Storage accounts, Resource Groups, Event Hubs, IoT Hubs
  • Event Handlers: ปลายทางที่รับ event
    • Azure Functions, Logic Apps, Webhooks, Service Bus Topics
  • Event Grid เชื่อมทั้งสองฝั่งแบบ dynamic โดยไม่ต้อง polling
พัฒนาแอปพลิเคชันบน Azure Storage

Event schema

  • JSON มาตรฐาน

Screenshot 2025-12-03 at 3.22.25 pm.png

พัฒนาแอปพลิเคชันบน Azure Storage

System Events เทียบกับ Custom Events

Screenshot 2025-10-27 at 7.38.52 pm.png

  • System Events: สร้างขึ้นโดยอัตโนมัติจากบริการ Azure
    • ตัวอย่าง: blob ถูกสร้าง, VM ถูกลบ, resource ถูกอัปเดต
  • Custom Events: event ที่แอปพลิเคชันของคุณเผยแพร่เอง
    • ตัวอย่าง: order service ของ Cipher Coffee เผยแพร่ "NewOrderCreated"
  • ทั้งสองประเภทใช้รูปแบบการ routing event เดียวกัน
พัฒนาแอปพลิเคชันบน Azure Storage

ประโยชน์ของ Event Grid

  • Serverless และ scalable — จัดการให้ทั้งหมด ไม่ต้องดูแล infrastructure

Cloud computing

  • ส่ง event ได้อย่างน่าเชื่อถือ — รองรับการลองใหม่และ dead-lettering สำหรับ event ที่ล้มเหลว

Hands shaking

  • ตอบสนองแบบ real-time — ส่ง event ภายในไม่กี่วินาที

Clock

  • เชื่อมต่อได้กว้าง — ใช้งานร่วมกับ Functions, Logic Apps และ API ของบุคคลที่สาม

Integration

พัฒนาแอปพลิเคชันบน Azure Storage

การกรองและ routing event

  • Event Grid สามารถกรอง event ก่อนส่งได้
  • กำหนดตัวกรองตามเงื่อนไขต่างๆ
    • ประเภท event (เช่น เฉพาะ Blob Created)
    • รูปแบบ subject (เช่น ไฟล์ใน "images/")
  • ช่วยให้ subscriber ได้รับเฉพาะ event ที่เกี่ยวข้อง

Screenshot 2025-10-27 at 7.49.11 pm.png

พัฒนาแอปพลิเคชันบน Azure Storage

มาฝึกกันเถอะ!

พัฒนาแอปพลิเคชันบน Azure Storage

Preparing Video For Download...