So sánh các phiên bản Cloud Functions

Có hai phiên bản Cloud Functions for Firebase:

  • Cloud Functions (thế hệ thứ 2), giúp triển khai các hàm dưới dạng dịch vụ trên Cloud Run, cho phép bạn kích hoạt các hàm đó bằng Eventarc và Pub/Sub.
  • Cloud Functions (thế hệ thứ 1), phiên bản gốc của các hàm có trình kích hoạt sự kiện và khả năng định cấu hình hạn chế.

Bạn nên chọn Cloud Functions (thế hệ thứ 2) cho các hàm mới bất cứ khi nào có thể. Tuy nhiên, chúng tôi dự định sẽ tiếp tục hỗ trợ Cloud Functions (thế hệ thứ 1).

Trang này mô tả các tính năng được giới thiệu trong Cloud Functions và so sánh hai phiên bản sản phẩm.

Cloud Functions (thế hệ thứ 2)

Cloud Functions là dịch vụ Chức năng dưới dạng dịch vụ (FaaS) thế hệ mới của Firebase. Được xây dựng trên Cloud Run và Eventarc, Cloud Functions (thế hệ thứ 2) mang đến cơ sở hạ tầng nâng cao và phạm vi sự kiện rộng hơn cho Cloud Functions, bao gồm:

  • Được xây dựng trên Cloud Run: Các hàm được xây dựng bằng Cloud Build và được triển khai dưới dạng dịch vụ Cloud Run bằng môi trường thực thi Cloud Run mặc định. Điều này cho phép bạn tuỳ chỉnh hàm của mình như khi bạn tuỳ chỉnh một dịch vụ Cloud Run. Tham khảo tài liệu về Cloud Run để khám phá các lựa chọn định cấu hình dịch vụ, chẳng hạn như giới hạn bộ nhớ, biến môi trường, v.v.
  • Thời gian xử lý yêu cầu dài hơn: Chạy khối lượng công việc có yêu cầu dài hơn, chẳng hạn như xử lý các luồng dữ liệu lớn từ Cloud Storage hoặc BigQuery.
  • Kích thước thực thể lớn hơn: Chạy các khối lượng công việc lớn hơn trong bộ nhớ, đòi hỏi nhiều tài nguyên điện toán và song song.
  • Cải thiện khả năng xử lý đồng thời: Xử lý nhiều yêu cầu đồng thời bằng một thực thể hàm duy nhất để giảm thiểu tình trạng khởi động nguội và cải thiện độ trễ.
  • Quản lý lưu lượng truy cập: Phân chia lưu lượng truy cập giữa các bản sửa đổi hàm khác nhau hoặc khôi phục hàm về phiên bản trước đó.
  • Tích hợp Eventarc: Hỗ trợ gốc cho trình kích hoạt Eventarc, đưa tất cả hơn 90 nguồn sự kiện được Eventarc hỗ trợ vào Cloud Functions.
  • Hỗ trợ CloudEvents rộng hơn: Hỗ trợ CloudEvents theo tiêu chuẩn ngành trong tất cả môi trường thời gian chạy ngôn ngữ, mang lại trải nghiệm nhất quán cho nhà phát triển.

Hãy xem bảng so sánh để biết thông tin chi tiết.

Vì Cloud Functions triển khai các hàm dưới dạng dịch vụ trên Cloud Run, nên Cloud Functions chia sẻ hạn mức và giới hạn tài nguyên với Cloud Run. Xem phần Hạn mức.

Bảng so sánh

Tính năng Cloud Functions (thế hệ thứ 1) Cloud Functions
Sổ đăng ký hình ảnh Container Registry hoặc Artifact Registry chỉ Artifact Registry
Hết thời gian yêu cầu Tối đa 9 phút
  • Tối đa 60 phút đối với các hàm được kích hoạt bằng HTTP
  • Tối đa 9 phút cho các hàm được kích hoạt theo sự kiện
Tài khoản dịch vụ* Tài khoản dịch vụ Google App Engine (PROJECT_ID@appspot.gserviceaccount.com) Tài khoản dịch vụ điện toán mặc định của Google Cloud (PROJECT_NUMBER-compute@developer.gserviceaccount.com)
Kích thước thực thể RAM lên đến 8 GB với 2 vCPU RAM lên đến 16 GiB với 4 vCPU
Đồng thời 1 yêu cầu đồng thời cho mỗi phiên bản hàm Tối đa 1.000 yêu cầu đồng thời cho mỗi phiên bản hàm

* Đây là tài khoản dịch vụ mặc định dùng để truy cập vào Firebase hoặc Cloud API từ một hàm đang chạy. SDK của Firebase dành cho quản trị viên sẽ sử dụng tài khoản này khi bạn khởi chạy mà không có đối số.

Giá

Để biết thông tin về giá, hãy xem các gói giá của Firebase.

Bạn có thể xem chi phí liên quan đến Cloud Functions như sau:

  1. Chuyển đến Cloud Billing trang Báo cáo trong bảng điều khiển Google Cloud.
  2. Nếu được nhắc, hãy chọn tài khoản thanh toán liên kết với dự án trên đám mây của bạn trên Google Cloud.
  3. Trong bảng điều khiển Bộ lọc, trong mục Nhãn, hãy thêm một bộ lọc nhãn có khoá goog-managed-by và giá trị cloudfunctions.

Hạn chế

Cloud Functions for Firebase (thế hệ thứ 2) không hỗ trợ các sự kiện Analytics.

Tuy nhiên, vì các hàm thế hệ thứ 1 và thế hệ thứ 2 có thể cùng tồn tại trong cùng một tệp nguồn, nên bạn vẫn có thể phát triển và triển khai các trình kích hoạt Analytics trong thế hệ thứ 1 cùng với các hàm thế hệ thứ 2.