Hạn mức và giới hạn

Trang này trình bày chi tiết các giới hạn dựa trên mức sử dụng, có thể mở rộng của Cloud Functions theo gói giá linh hoạt trả tiền theo mức dùng. Các giới hạn này áp dụng cho Các dự án Firebase triển khai các hàm cho môi trường thời gian chạy Node.js 10.

Gói linh hoạt cung cấp một lượng lớn lệnh gọi, thời gian điện toán và lưu lượng truy cập Internet miễn phí. Tuy nhiên, việc triển khai hàm phải phát sinh quy mô nhỏ đối với không gian lưu trữ dùng cho vùng chứa của hàm. Xem phần Câu hỏi thường gặp về Firebase để biết thêm thông tin.

Hạn mức cho Google Cloud Functions bao gồm 3 lĩnh vực:

  • Giới hạn về tài nguyên

    Các mức tài nguyên này ảnh hưởng đến tổng số tài nguyên mà các hàm của bạn có thể sử dụng.

  • Giới hạn thời gian

    Các yếu tố này ảnh hưởng đến thời gian hoạt động.

  • Giới hạn số lần yêu cầu

    Những điều này ảnh hưởng đến tốc độ bạn có thể gọi Cloud Functions API quản lý các chức năng của bạn.

Các loại hạn mức khác nhau được mô tả chi tiết hơn ở bên dưới. Sự khác biệt giữa giới hạn của Hàm đám mây (thế hệ thứ 1) và Chức năng đám mây (thế hệ thứ 2) sẽ được ghi chú nếu có.

Giới hạn về tài nguyên

Giới hạn về tài nguyên ảnh hưởng đến tổng số tài nguyên mà các hàm của bạn có thể sử dụng. Phạm vi theo khu vực là theo từng dự án và mỗi dự án đều có các giới hạn riêng.

Hạn ngạch dung lượng Mô tả Giới hạn (thế hệ thứ 1) Giới hạn (thế hệ thứ 2) Có thể tăng thêm Phạm vi
Số hàm Tổng số hàm có thể được triển khai theo khu vực 1.000 1.000 trừ đi số lượng dịch vụ Cloud Run đã triển khai Không mỗi vùng
Kích thước triển khai tối đa Kích thước tối đa của một chức năng triển khai đơn lẻ 100 MB (được nén) cho nguồn.
500 MB (chưa nén) đối với nguồn và mô-đun.
Không áp dụng Không mỗi hàm
Kích thước tối đa của yêu cầu HTTP không nén Dữ liệu được gửi tới các Hàm HTTP trong yêu cầu HTTP 10MB 32MB Không mỗi lần gọi
Kích thước phản hồi HTTP không nén tối đa Dữ liệu được gửi từ các hàm HTTP trong phản hồi HTTP 10MB 10 MB để tạo câu trả lời theo thời gian thực.
32MB đối với các phản hồi không phát trực tuyến.
Không mỗi lần gọi
Kích thước sự kiện tối đa cho các hàm dựa trên sự kiện Dữ liệu được gửi trong sự kiện đến các hàm nền 10MB 512KB cho các sự kiện Eventarc.
10 MB đối với các sự kiện cũ.
Không mỗi sự kiện
Bộ nhớ chức năng tối đa Dung lượng bộ nhớ mà mỗi thực thể hàm có thể sử dụng 8GiB 32GiB Không mỗi hàm

Giới hạn thời gian

Hạn ngạch dung lượng Mô tả Giới hạn (thế hệ thứ 1) Giới hạn (thế hệ thứ 2) Có thể tăng thêm Phạm vi
Thời lượng hàm tối đa Khoảng thời gian tối đa mà một hàm có thể chạy trước khi bị buộc kết thúc 540 giây 60 phút đối với các hàm HTTP.
9 phút đối với các chức năng dựa trên sự kiện.
Không mỗi lần gọi

Giới hạn số lần yêu cầu

Hạn ngạch dung lượng Mô tả Giới hạn (thế hệ thứ 1) Giới hạn (thế hệ thứ 2) Có thể tăng thêm Phạm vi
Lệnh gọi API (READ) Lệnh gọi để mô tả hoặc liệt kê các hàm qua Cloud Functions API 5000 mỗi 100 giây 1200 mỗi 60 giây Chỉ dành cho thế hệ thứ 1 mỗi dự án (thế hệ thứ 1)
mỗi khu vực (thế hệ thứ 2)
Lệnh gọi API (GHI) Lệnh gọi để triển khai hoặc xoá hàm qua Cloud Functions API 80/100 giây 60/60 giây Số 1 mỗi dự án (thế hệ thứ 1)
mỗi khu vực (thế hệ thứ 2)
Lệnh gọi API (CALL) Lời gọi đến "cuộc gọi" API 16/100 giây Không áp dụng Số 2 mỗi dự án

Khả năng mở rộng

Các chức năng đám mây do HTTP gọi ra sẽ nhanh chóng mở rộng để xử lý lưu lượng truy cập đến, trong khi các hàm nền có tỷ lệ tăng dần. Khả năng mở rộng quy mô của hàm phụ thuộc vào một số yếu tố, bao gồm:

  • Khoảng thời gian cần thiết để hoàn tất việc thực thi một hàm (các hàm chạy trong thời gian ngắn thường có thể mở rộng quy mô để xử lý đồng thời nhiều hơn yêu cầu).
  • Khoảng thời gian cần thiết để khởi động một hàm khởi động nguội.
  • Tỷ lệ lỗi của hàm.
  • Các yếu tố tạm thời, chẳng hạn như tải tại khu vực và sức chứa của trung tâm dữ liệu.

Các hàm nền có thêm như được giải thích bên dưới. Các giới hạn này không áp dụng cho thế hệ thứ 1 Hàm HTTP.

Hạn mức bổ sung cho các hàm ở chế độ nền

Hạn ngạch dung lượng Mô tả Giới hạn Có thể tăng thêm Phạm vi Phiên bản sản phẩm
Số lệnh gọi đồng thời tối đa Số lệnh gọi đồng thời tối đa của một hàm
Ví dụ: nếu xử lý mỗi sự kiện mất 100 giây, thì lệnh gọi tốc độ trung bình sẽ được giới hạn ở mức 30/giây
3.000 mỗi hàm Chỉ thế hệ 1
Tỷ lệ gọi tối đa Số lượng sự kiện tối đa do một hàm xử lý
Ví dụ: nếu việc xử lý một sự kiện mất 100 mili giây, lệnh gọi sẽ được giới hạn ở mức 1.000 mỗi giây ngay cả khi chỉ có 100 yêu cầu, được xử lý song song
1000 mỗi giây Không mỗi hàm Chỉ thế hệ 1
Kích thước dữ liệu sự kiện đồng thời tối đa Tổng kích thước tối đa của các sự kiện sắp tới cho các lệnh gọi đồng thời của một hàm duy nhất
Ví dụ: nếu sự kiện có kích thước 1MB và việc xử lý chúng mất 10 giây thì tốc độ trung bình sẽ là 1 sự kiện mỗi giây, vì giây thứ 11 sự kiện sẽ không được xử lý cho đến khi xử lý 1 trong 10 sự kiện đầu tiên kết thúc
10MB Không mỗi hàm thế hệ 1 và thế hệ 2
Thông lượng tối đa cho các sự kiện đến Thông lượng tối đa của các sự kiện đến vào một hàm
Ví dụ: nếu sự kiện có kích thước 1MB, thì tỷ lệ gọi có thể tối đa 10 mỗi giây, ngay cả khi các chức năng kết thúc trong vòng 100 mili giây
10MB/giây Không mỗi hàm thế hệ 1 và thế hệ 2

Khi bạn đạt đến hạn mức

Khi một hàm sử dụng tất cả tài nguyên được phân bổ, tài nguyên đó sẽ trở thành không có sẵn cho đến khi hạn mức được làm mới hoặc tăng lên. Điều này có nghĩa là và tất cả các hàm khác trong cùng một dự án sẽ không hoạt động cho đến thời điểm đó. Một hàm trả về mã lỗi HTTP 500 khi một trong các tài nguyên là vượt quá hạn mức và hàm không thể thực thi.

Để tăng hạn mức lên trên mức mặc định được liệt kê ở đây, hãy chuyển đến Trang Hạn mức của Cloud Functions, chọn hạn mức bạn muốn sửa đổi rồi nhấp vào CHỈNH SỬA HẠN CHẾ, hãy cung cấp thông tin người dùng của bạn nếu được nhắc rồi nhập hạn mức cho mỗi hạn mức bạn đã chọn.

Hạn mức khi triển khai Firebase CLI

Đối với mỗi hàm mà Firebase CLI triển khai, các kiểu sau giới hạn tốc độ và thời gian bị ảnh hưởng:

  • Lệnh gọi API (READ) – 1 lệnh gọi mỗi lần triển khai, bất kể số hàm
    • Giới hạn: 5000 mỗi 100 giây
  • Lệnh gọi API (GHI) – 1 lệnh gọi cho mỗi hàm
    • Giới hạn: 80/100 giây

Hãy xem thêm tài liệu tham khảo về Giao diện dòng lệnh (CLI) của Firebase.