Hạn mức

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

Gói giá Blaze cung cấp miễn phí một lượng lớn lệnh gọi, thời gian tính toán và lưu lượng truy cập Internet. Tuy nhiên, việc triển khai hàm sẽ phát sinh phí quy mô nhỏ cho không gian lưu trữ được dùng cho vùng chứa của hàm. Để biết thông tin chi tiết, hãy xem phần Câu hỏi thường gặp.

Hạn mức cho Cloud Functions bao gồm 4 khía cạnh:

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

    Những hạn mức này ảnh hưởng đến tổng lượng 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

    Những yếu tố này ảnh hưởng đến thời gian chạy của các tác vụ.

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

    Những hạn mức này ảnh hưởng đến tần suất bạn có thể gọi API Cloud Functions để quản lý các hàm của mình.

  • Giới hạn mạng

    Những yếu tố này ảnh hưởng đến giới hạn kết nối và thực thể đi.

Các loại giới hạn được mô tả chi tiết hơn ở bên dưới. Sự khác biệt giữa các giới hạn của Cloud Functions (thế hệ thứ 1) và Cloud Functions (thế hệ thứ 2) được ghi chú khi cần.

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

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

Hạn ngạch dung lượng Mô tả Giới hạn (thế hệ thứ 1) Limit (thế hệ thứ 2) Có thể tăng lên Phạm vi
Số lượng hàm Tổng số hàm có thể triển khai cho mỗi khu vực 1.000 1.000 trừ đi số lượng dịch vụ Cloud Run đã triển khai Không mỗi khu vực
Kích thước triển khai tối đa Kích thước tối đa của một lần triển khai hàm 100 MB (đã nén) cho nguồn.
500 MB (chưa nén) cho 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 đến Hàm HTTP trong một yêu cầu HTTP 10MB 32MB Không mỗi lệnh gọi
Kích thước tối đa của phản hồi HTTP không nén Dữ liệu được gửi từ các hàm HTTP trong phản hồi HTTP 10MB 10 MB đối với câu trả lời theo thời gian thực.
32 MB cho phản hồi không truyền trực tuyến.
Không mỗi lệnh 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 các sự kiện đến hàm nền 10MB 512 KB cho sự kiện Eventarc.
10 MB đối với sự kiện cũ.
Không mỗi sự kiện
Bộ nhớ tối đa của hàm 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
Bộ nhớ tối đa của dự án Dung lượng bộ nhớ (tính bằng byte) mà một dự án có thể sử dụng. Chỉ số này được đo lường bằng tổng bộ nhớ mà người dùng yêu cầu trên các phiên bản hàm trong khoảng thời gian 1 phút. Tuỳ thuộc vào khu vực đã chọn. Giới hạn này có thể cao hơn ở những khu vực có công suất cao hoặc thấp hơn ở những khu vực mới mở. Không áp dụng Có cho mỗi dự án và khu vực
Mức sử dụng CPU tối đa của dự án Lượng CPU (tính bằng milli vCPU) mà một dự án có thể sử dụng. Chỉ số này được đo lường bằng tổng số CPU do người dùng yêu cầu trên các thực thể hàm trong khoảng thời gian 1 phút. Tuỳ thuộc vào khu vực đã chọn. Giới hạn này có thể cao hơn ở những khu vực có công suất cao hoặc thấp hơn ở những khu vực mới mở. Không áp dụng Có cho mỗi dự án và khu vực

Giới hạn thời gian

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

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

Hạn ngạch dung lượng Mô tả Giới hạn (thế hệ thứ 1) Limit (thế hệ thứ 2) Có thể tăng lên Phạm vi
Lệnh gọi API (ĐỌC) Các lệnh gọi để mô tả hoặc liệt kê các hàm thông qua Cloud Functions API 5.000/100 giây 1200 per 60 seconds 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 (WRITE) Lệnh gọi để triển khai hoặc xoá hàm thông qua API Cloud Functions 80/100 giây 60 yêu cầu mỗi 60 giây Không 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ệnh gọi đến API "call" 16/100 giây Không áp dụng Không 2 mỗi dự án

Giới hạn mạng

Để biết thông tin về giới hạn băng thông và yêu cầu mạng của Cloud Functions (thế hệ thứ 2), hãy xem phần Giới hạn kết nối mạng.

Các giới hạn kết nối mạng sau đây áp dụng cho Cloud Functions (thế hệ thứ 1):

  • Số kết nối đi mỗi giây trên mỗi phiên bản: 500 (không thể tăng)
  • Số lượt phân giải DNS đi mỗi giây trên mỗi phiên bản: 100 (không thể tăng)
  • Số gói tối đa mỗi giây trên mỗi thực thể: 80.000
  • Số bit tối đa mỗi giây cho mỗi phiên bản: 100.000.000

Khả năng có thể mở rộng

Cloud Functions được gọi bằng HTTP sẽ nhanh chóng tăng quy mô để xử lý lưu lượng truy cập đến, trong khi các hàm nền sẽ tăng quy mô dần dần. Khả năng tăng quy mô của một hàm được quyết định bởi một vài yếu tố, bao gồm:

  • Thời gian cần thiết để hoàn tất quá trình thực thi hàm (các hàm chạy trong thời gian ngắn thường có thể tăng quy mô để xử lý nhiều yêu cầu đồng thời hơn).
  • Thời gian cần thiết để một hàm khởi chạy khi 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 theo khu vực và dung lượng của trung tâm dữ liệu.

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

Hạn mức bổ sung cho các hàm chạy trong nền

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

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

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

Để tăng hạn mức lên cao hơn mức mặc định được liệt kê tại đây, hãy chuyển đến Cloud Functions trang Hạn mức, chọn hạn mức bạn muốn sửa đổi, nhấp vào Chỉnh sửa hạn mức, cung cấp thông tin người dùng nếu được nhắc và nhập giới hạn mới cho từng hạn mức bạn đã chọn.

Hạn mức cho việc triển khai Giao diện dòng lệnh (CLI) của Firebase

Đối với mỗi hàm mà Giao diện dòng lệnh (CLI) của Firebase triển khai, các loại giới hạn về tốc độ và thời gian sau đây sẽ bị ảnh hưởng:

  • Lệnh gọi API (ĐỌC) – 1 lệnh gọi cho mỗi lần triển khai, bất kể số lượng hàm
    • Giới hạn: 5.000 yêu cầu 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 yêu cầu mỗi 100 giây

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