Trang này trình bày chi tiết các giới hạn có thể mở rộng, dựa trên mức sử dụng cho Cloud Functions theo gói giá linh hoạt (trả tiền theo mức dùng) Blaze. Các giới hạn này áp dụng cho các dự án Firebase triển khai các hàm đến môi trường thời gian chạy Node.js 10.
Gói 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ải trả phí ở quy mô nhỏ cho không gian lưu trữ dùng cho vùng chứa của hàm. Hãy xem Câu hỏi thường gặp về Firebase để biết thêm thông tin.
Hạn mức cho Firebase bao gồm 4 lĩnh vực:
Giới hạn về tài nguyên
Các hàm này ảnh hưởng đến tổng lượng tài nguyên mà hàm của bạn có thể tiêu thụ.
Giới hạn thời gian
Các yếu tố này ảnh hưởng đến thời lượng chạy của các tác vụ.
Giới hạn tốc độ
Các thông số này ảnh hưởng đến tốc độ bạn có thể gọi API Firebase để quản lý các hàm của mình.
Giới hạn về mạng
Các giới hạn này ảnh hưởng đến giới hạn phiên bản và kết nối đi.
Các loại giới hạn được mô tả chi tiết hơn ở bên dưới. Chúng tôi sẽ lưu ý các điểm khác biệt giữa các giới hạn cho Firebase (thế hệ 1) và Firebase (thế hệ 2) (nếu có).
Giới hạn về 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ể tiêu thụ. Phạm vi theo khu vực là theo dự án và mỗi dự án sẽ duy trì các giới hạn riêng.
Hạn ngạch dung lượng | Nội dung mô tả | Limit (thế hệ thứ 1) | Limit (thế hệ thứ 2) | Có thể tăng | Phạm vi |
---|---|---|---|---|---|
Số lượng hàm | Tổng số lượng hàm có thể triển khai tại mỗi khu vực | 1.000 | 1.000 trừ đi số lượng dịch vụ Cloud Run đã triển khai | Không | theo 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) đối với nguồn. 500 MB (không nén) cho nguồn cộng với các mô-đun. |
Không áp dụng | Không | trên mỗi hàm |
Kích thước tối đa của yêu cầu HTTP chưa 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 chưa nén | Dữ liệu được gửi từ các hàm HTTP trong phản hồi HTTP | 10MB | 10 MB cho phản hồi phát trực tuyến. 32 MB đối với các phản hồi không phải là phản hồi 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 do sự kiện điều khiển | Dữ liệu được gửi trong các sự kiện đến các hàm ở chế độ nền | 10MB | 512 KB cho sự kiện Eventarc. 10 MB đối với các sự kiện cũ. |
Không | trên mỗi sự kiện |
Bộ nhớ hàm tối đa | Dung lượng bộ nhớ mà mỗi thực thể hàm có thể sử dụng | 8 GiB | 32GiB | Không | trên mỗi hàm |
Bộ nhớ tối đa của dự án | Dung lượng bộ nhớ (theo đơn vị By) mà một dự án có thể sử dụng. Chỉ số này được đo lường bằng tổng dung lượng bộ nhớ 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ó dung lượng cao hoặc thấp hơn ở những khu vực mới mở. | Không áp dụng | Có | theo dự án và khu vực |
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 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ó dung lượng cao hoặc thấp hơn ở những khu vực mới mở. | Không áp dụng | Có | theo dự án và khu vực |
Giới hạn thời gian
Hạn ngạch dung lượng | Nội dung mô tả | Limit (thế hệ thứ 1) | Limit (thế hệ thứ 2) | Có thể tăng | 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 chấm dứt | 540 giây | 60 phút đối với các hàm HTTP. 9 phút đối với các hàm do sự kiện điều khiển. |
Không | mỗi lệnh gọi |
Giới hạn tốc độ
Hạn ngạch dung lượng | Nội dung mô tả | Limit (thế hệ thứ 1) | Limit (thế hệ thứ 2) | Có thể tăng | Phạm vi |
---|---|---|---|---|---|
Lệnh gọi API (ĐỌC) | Lệnh gọi để mô tả hoặc liệt kê các hàm thông qua API Firebase | 5000/100 giây | 1200/60 giây | Chỉ dành cho thế hệ thứ nhất | theo dự án (thế hệ 1) theo khu vực (thế hệ 2) |
Lệnh gọi API (GHI) | Lệnh gọi để triển khai hoặc xoá các hàm thông qua API Firebase | 80/100 giây | 60 lần/60 giây | Không 1 | theo dự án (thế hệ 1) theo khu vực (thế hệ 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 về kết nối mạng
Để biết thông tin về yêu cầu kết nối mạng và giới hạn băng thông của Firebase (thế hệ 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 Firebase (thế hệ 1):
- Số kết nối đi ra mỗi giây trên mỗi thực thể: 500 (không thể tăng)
- Số lượt phân giải DNS đi ra mỗi giây trên mỗi thực thể: 100 (không thể tăng)
Khả năng mở rộng
Firebase do HTTP gọi sẽ mở rộng nhanh chóng để xử lý lưu lượng truy cập đến, trong khi các hàm trong nền sẽ mở rộng dần dần. Khả năng mở rộng quy mô của một 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 để thực thi một hàm hoàn tất (các hàm chạy trong thời gian ngắn thường có thể mở rộng quy mô để xử lý nhiều yêu cầu đồng thời hơn).
- Khoảng 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 trung tâm dữ liệu.
Hạn mức bổ sung cho các hàm ở chế độ nền
Hạn ngạch dung lượng | Nội dung mô tả | Giới hạn | Có thể tăng | 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ẽ được giới hạn ở mức trung bình là 30 mỗi giây |
3.000 | Có | trên mỗi hàm | Chỉ thế hệ 1 |
Tốc độ gọi tối đa | Tốc độ tối đa của các sự kiện được một hàm xử lý Ví dụ: nếu xử lý một sự kiện mất 100 mili giây, thì tốc độ gọi sẽ bị giới hạn ở mức 1000 mỗi giây ngay cả khi trung bình chỉ có 100 yêu cầu được xử lý song song |
1.000/giây | Không | trên mỗi hàm | Chỉ thế hệ 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 với 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à mất 10 giây để xử lý, 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 xử lý xong một trong 10 sự kiện đầu tiên |
10MB | Không | trên mỗi hàm | Thế hệ 1 và thế hệ 2 |
Thông lượng tối đa của các sự kiện sắp tới | Lưu 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 1MB, thì tốc độ gọi có thể là tối đa 10 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 | trên mỗi hàm | Thế hệ 1 và thế hệ 2 |
Khi bạn đạt đến giới hạ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 cho đến khi hạn mức được làm mới hoặc tăng lên. Điều này có thể có nghĩa là hàm của bạn 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 lúc đó. 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 trên hạn mức mặc định được liệt kê ở đây, hãy chuyển đến trang Firebase 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 của bạn nếu được nhắc và nhập hạn mức mới cho mỗi hạn mức bạn đã chọn.
Giới hạ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à Firebase CLI triển khai, các loại giới hạn 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ể có bao nhiêu 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
Ngoài ra, hãy xem tài liệu tham khảo về Giao diện dòng lệnh (CLI) của Firebase.