avatar

Đăng vào

Tăng thời gian tích hợp timeout cho Amazon API Gateway

Tác giả
  • avatar

    Name
    Hai Nguyen
    Facebook

Giới thiệu

Amazon API Gateway là dịch vụ được quản lý bởi AWS, giúp các developer dễ dàng khởi tạo, phát hành (publish), quản lý, giám sát và bảo trì các API của hệ thống ứng dụng của mình ở mọi quy mô. API Gateway đóng vai trò là cánh cửa ngõ của các ứng dụng, cung cấp cách thức truy cập dữ diệu, logic nghiệp vụ, hoặc chức năng từ các dịch vụ backend của hệ thống. Hiện nay, AWS hỗ trợ 03 loại API Gateway:

  • REST API
  • HTTP API
  • WebSocket API

Khi làm việc với Amazon API Gateway, một trong các thông số quan trọng là "integration timeout". Đây là thời gian mà API Gateway chờ phản hồi từ backend (ví dụ: Lambda functions) trước khi trả về lỗi cho client. Trước đây, thời gian integration timeout mặc định của API gateway tối thiểu là 50 mili giây và tối đa là 29 giây.

Vậy nếu backend của chúng ta cần nhiều hơn 29 giây để xử lý logic và phản hồi kết quả cho API Gateway thì sao? Khi đó, API Gateway sẽ trả lỗi timeout tới client. Từ tháng 06/2024, nỗi đau này đã có thuốc chữa. Chúng ta có thể tăng thời gian integration timeout nhiều hơn 29s khi cần. Đây là thông báo từ AWS. Tính đến thời điểm viết bài blog này, mới có 02 loại API gateway hỗ trợ là: Regional REST APIs và private REST APIs.

Chú ý: Không có tình yêu nào là vô điều kiện, khi chúng ta tăng thời gian integration timeout, đổi lại "throttle quota" trên API Gateway của chúng ta sẽ bị giảm ở tầng "ACCOUNT". Tham khảo tại đây để biết về các quotas và note quan trọng của Amazon API Gateway.

Vậy làm thế nào để tăng integration timeout?

  • Bước 1: Tăng "maximum integration timeout in miliseconds" trong Service Quotas ở Management Console. Ví dụ, chúng ta tăng lên 40,000 mili giây. Việc request này sẽ được approved nhanh chóng:

Service Quotas

API Gateway Service Quotas mặc định trước thay đổi

Service Quotas

API Gateway Service Quotas sau khi request thành công
  • Bước 2: Cài đặt hoặc thay đổi tham giá integration timeout (trường hợp chúng ta đã có REST API trước đó):

Service Quotas

Integration Timeout mặc định là 29 giây

Service Quotas

Thay đổi giá trị lên thời gian timeout đã request increase thành công

Service Quotas

Thay đổi giá trị lên thời gian timeout đã request increase thành công

Service Quotas

Giá trị integration timeout sau cập nhật

Kết luận:

Bài toán integration timeout đã có thuốc giải. Mong rằng trong tương lai gần, AWS sẽ hỗ trợ thêm các loại API Gateway còn lại.