Phân phát nội dung động và dịch vụ vi mô lưu trữ bằng tính năng Lưu trữ Firebase

Firebase Hosting tích hợp với các phương thức điện toán không máy chủ, bao gồm Cloud Functions for FirebaseCloud Run. Khi sử dụng Firebase Hosting với các tuỳ chọn này, bạn có thể lưu trữ các dịch vụ vi mô bằng cách chuyển hướng các yêu cầu HTTPS để kích hoạt các hàm và ứng dụng được đóng gói trong vùng chứa chạy trong một môi trường an toàn, được quản lý.

Cloud Functions for Firebase: Bạn viết và triển khai , đây là mã phụ trợ phản hồi một điều kiện kích hoạt cụ thể. Sau đó, sử dụng Firebase Hosting, bạn có thể chuyển hướng các yêu cầu HTTPS để kích hoạt hàm của mình để chạy.

Cloud Run: Bạn viết và triển khai được đóng gói trong một hình ảnh vùng chứa. Sau đó, bằng cách sử dụng Firebase Hosting, bạn có thể chuyển hướng các yêu cầu HTTPS để kích hoạt ứng dụng trong vùng chứa của bạn chạy.

Trường hợp sử dụng

Làm cách nào để sử dụng các lựa chọn điện toán không máy chủ bằng Firebase Hosting?

  • Phân phát nội dung động – Ngoài việc phân phát nội dung tĩnh trên trang web Hosting của mình, bạn có thể phân phát các phản hồi được tạo động từ hoặc ứng dụng trong vùng chứa đang thực hiện logic phía máy chủ.

    Ví dụ: bạn có thể trỏ mẫu URL (như /blog/<blog-post-id>) đến một hàm sử dụng tham số mã bài đăng trên blog của URL để truy xuất nội dung một cách linh động từ cơ sở dữ liệu của mình.

  • Xây dựng API REST – Bạn có thể tạo API dịch vụ vi mô bằng cách sử dụng các hàm.

    Ví dụ: các hàm có thể xử lý chức năng đăng nhập cho trang web của bạn. Mặc dù trang web của bạn được lưu trữ tại /, nhưng mọi yêu cầu đến /api đều đã chuyển hướng tới API dịch vụ vi mô của mình. Ví dụ: hãy xem mẫu nguồn mở này.

  • Lưu nội dung động vào bộ nhớ đệm – Bạn có thể định cấu hình tính năng lưu nội dung động vào bộ nhớ đệm trên một CDN toàn cầu.

    Ví dụ: nếu một hàm chỉ tạo nội dung mới theo định kỳ, bạn có thể tăng tốc ứng dụng của bạn bằng cách lưu nội dung đã tạo vào bộ nhớ đệm trong ít nhất một khoảng thời gian cụ thể. Bạn cũng có thể giảm chi phí thực thi vì nội dung được phân phát từ CDN thay vì thông qua một hàm được kích hoạt hoặc ứng dụng được đóng gói.

  • Kết xuất trước ứng dụng trang đơn – Bạn có thể cải thiện SEO và tối ưu hoá chia sẻ trên các mạng xã hội khác nhau bằng cách tạo thẻ meta động. Người nhận tìm hiểu thêm, hãy xem video này hoặc thanh toán mẫu nguồn mở này.

Chọn một phương án không máy chủ

Trong khi cả Cloud Functions for FirebaseCloud Run tích hợp với Firebase Hosting và cung cấp một chế độ quản lý toàn diện, tự động cấp tài nguyên bổ sung và bảo mật môi trường không máy chủ, có thể tận dụng 2 phương án này cho các trường hợp sử dụng và cấp cấu hình tuỳ chỉnh mong muốn.

Khi sử dụng một trong hai phương án không máy chủ, tốt nhất là bạn nên cùng xác định vị trí phương thức này với các máy chủ cho Firebase Hosting bằng cách triển khai tại một trong những khu vực sau:

  • us-west1
  • us-central1
  • us-east1
  • europe-west1
  • asia-east1

Bảng sau đây mô tả một số cân nhắc cơ bản khi sử dụng Cloud Functions for Firebase đấu với Cloud Run. Để có danh sách đầy đủ về hạn mức, giới hạn và chỉ số, hãy tham khảo tài liệu chi tiết của từng sản phẩm (Cloud Functions for Firebase hoặc Cloud Run).

Mức độ cân nhắc Cloud Functions for Firebase Cloud Run
Thiết lập CLI Firebase gói nhiều tác vụ vào một lệnh duy nhất, từ việc khởi chạy đến tạo và triển khai. Vùng chứa cung cấp nhiều lựa chọn dễ tuỳ chỉnh hơn, vì vậy, bạn có thể thiết lập, xây dựng và nhiệm vụ triển khai liên quan đến các bước riêng biệt.
Môi trường thời gian chạy Yêu cầu phải có Node.js, nhưng bạn có thể chỉ định trong đó phiên bản của Node.js để sử dụng. Khi tạo vùng chứa, bạn sẽ chỉ định môi trường thời gian chạy.
Hỗ trợ ngôn ngữ và khung

JavaScript và TypeScript

Các khung web như Express.js được hỗ trợ.

Mọi ngôn ngữ mà Dockerfiles hỗ trợ, bao gồm Go, Node.js, Python, Java, v.v.

Hỗ trợ các khung web cho từng ngôn ngữ.

Hết thời gian chờ đối với yêu cầu Hosting 60 giây (xem Ghi chú bên dưới) 60 giây (xem Ghi chú bên dưới)
Tính đồng thời 1 yêu cầu cho mỗi thực thể hàm
(không có mô hình đồng thời cho mỗi thực thể)
Tối đa 1.000 yêu cầu đồng thời cho mỗi thực thể vùng chứa
Thanh toán Mức sử dụng Cloud Functions

Hạn mức sử dụng miễn phí, nhưng bạn phải có tài khoản Cloud Billing. Xem Câu hỏi thường gặp về Firebase.

Mức sử dụng Cloud Run + Container Registry bộ nhớ

Hạn mức sử dụng miễn phí, nhưng Bạn phải nhập tài khoản Cloud Billing