
📌 Giải đề: Xử lý timeout trong Azure Function bằng App Service Plan và Always On
1. Phân tích yêu cầu bài toán
- Bạn có một HTTP-triggered Azure Function để 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: Chuyển sang App Service Plan và bật Always On.
Câu hỏi: Cách này có giúp giải quyết vấn đề không?
2. Phân tích giải pháp
📌 Always On là gì?
- Always On đảm bảo Azure Function không bị “cold start” và luôn sẵn sàng xử lý request.
- Chỉ có App Service Plan (không phải Consumption Plan) mới hỗ trợ Always On.
📌 Giới hạn của HTTP-triggered Azure Function
- Consumption Plan: Timeout tối đa 5 phút (không thể tăng thêm).
- Premium Plan hoặc App Service Plan: Không có giới hạn thời gian nếu bật Always On.
📌 Vì sao đây KHÔNG phải là giải pháp hoàn chỉnh?
- Dù App Service Plan cho phép chạy lâu hơn, nó không thực sự giải quyết được vấn đề timeout của HTTP request.
- HTTP request vẫn phải phản hồi trong một khoảng thời gian hợp lý, không thể giữ kết nối quá lâu.
- Giải pháp tốt hơn: Dùng Durable Functions hoặc Azure Service Bus Queue để xử lý async.
3. Đáp án chính xác
❌ Câu trả lời đúng là: B. No.
💡 Vì sao?
- App Service Plan + Always On giúp giảm cold start nhưng KHÔNG giải quyết được vấn đề timeout HTTP.
- HTTP request vẫn có giới hạn thời gian phản hồi, nên dữ liệu blob có thể chưa được xử lý xong.
- Durable Functions hoặc Azure Service Bus Queue mới là giải pháp tối ưu.
🚀 Sử dụng App Service Plan với Always On không phải cách tốt nhất để xử lý blob data mà không bị timeout! 🚀