
📌 Giải đề: Xử lý timeout trong Azure Function khi xử lý dữ liệu từ Azure Storage Blob
1. Phân tích đề bài
- Bạn có một Azure Function app được kích hoạt bằng HTTP trigger để xử lý dữ liệu từ Azure Storage Blob.
- Vấn đề: App liên tục timeout sau 4 phút nhưng vẫn phải đảm bảo xử lý blob data thành công.
- Giải pháp được đề xuất: Dùng Durable Function async pattern để xử lý dữ liệu blob.
Câu hỏi: Durable Functions có giải quyết vấn đề này không?
2. Phân tích giải pháp Durable Function
📌 Giới hạn của Azure Functions
- Với Consumption Plan, Azure Functions có timeout tối đa là 5 phút.
- Với Premium Plan hoặc Dedicated (App Service) Plan, Azure Functions có thể chạy lâu hơn.
- Nếu một HTTP-triggered function mất quá nhiều thời gian để chạy, nó sẽ bị timeout và không hoàn thành công việc.
📌 Vì sao chọn Durable Function?
- Durable Function async pattern giúp xử lý các công việc dài hạn bằng cách tách thành nhiều bước nhỏ.
- Orchestration function có thể chia nhỏ tiến trình xử lý blob thành các hoạt động độc lập (Activity Functions) mà không bị timeout.
- Khi một Activity Function hoàn thành, Orchestrator sẽ tiếp tục chạy các bước tiếp theo.
🛠️ Mô hình triển khai Durable Functions để xử lý blob:
- HTTP trigger nhận yêu cầu xử lý blob.
- Orchestrator Function được gọi để bắt đầu quá trình.
- Activity Function xử lý từng phần của blob mà không bị timeout.
- Orchestrator Function kiểm tra trạng thái của từng bước và tiếp tục cho đến khi hoàn thành.
- Kết quả cuối cùng được trả về khi hoàn tất.
3. Đáp án chính xác
✅ Câu trả lời đúng là: A. Yes.
💡 Vì sao?
- Durable Functions giúp thực hiện các tác vụ dài hạn mà không bị timeout.
- Orchestration Pattern tách biệt các bước xử lý dữ liệu blob thành nhiều hoạt động nhỏ hơn, đảm bảo không vượt quá giới hạn thời gian của Azure Functions.
- Hỗ trợ theo dõi trạng thái và đảm bảo công việc hoàn thành ngay cả khi có lỗi.
🚀 Sử dụng Durable Functions là giải pháp tối ưu để xử lý dữ liệu blob mà không bị timeout! 🚀