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. Đang 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 đến kích hoạt các chức năng và ứng dụng trong vùng chứa của bạn để chạy trong 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.

    Chẳng hạn như các hàm có thể xử lý chức năng đăng nhập cho 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 việc lưu nội dung động vào bộ nhớ đệm của nội dung động trên một mạng phân phối nội dung (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 được chi phí thực thi do nội dung được phân phát từ CDN thay vì qua chức năng được kích hoạt hoặc ứng dụng trong vùng chứa.

  • 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 nhóm nhiều tác vụ thành các lệnh duy nhất, từ khởi tạo để xây dựng 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ợ.

Bất kỳ ngôn ngữ nào mà Dockerfiles hỗ trợ, bao gồm Go, Node.js, Python, Java, v.v.

Hỗ trợ 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 Tài khoản Cloud Billing là bắt buộc. 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