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 lựa chọn đ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 lựa 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 chứa trong vùng chứa chạy trong một môi trường được quản lý và bảo mật.

Cloud Functions for Firebase: Bạn viết và triển khai một hàm, là mã phụ trợ phản hồi một trình kích hoạt cụ thể. 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 hàm chạy.

Cloud Run: Bạn viết và triển khai một ứng dụng đượ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 được chứa trong vùng chứa chạy.

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

Bạn có thể sử dụng các lựa chọn điện toán không máy chủ với Firebase Hosting như thế nào?

  • 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, bạn có thể phân phát các phản hồi được tạo động từ một hàm hoặc ứng dụng được chứa trong vùng chứa đang thực hiện logic phía máy chủ.

    Ví dụ: bạn có thể trỏ một 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 hoạt từ cơ sở dữ liệu của bạn.

  • Tạo API REST – Bạn có thể tạo API dịch vụ vi mô bằ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. Trong khi trang web của bạn được lưu trữ tại /, mọi yêu cầu đến /api đều được chuyển hướng đến API dịch vụ vi mô. Để xem ví dụ, hãy tham khảo mẫu mã nguồn mở này.

  • Lưu vào bộ nhớ đệm nội dung động – Bạn có thể định cấu hình bộ nhớ đệm cho nội dung động trên 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 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 ngắn. 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 chứa trong vùng chứa.

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

Chọn một lựa chọn không máy chủ

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

Khi sử dụng một trong hai lựa chọn không máy chủ, tốt nhất là bạn nên đặt lựa chọn đó cùng với các máy chủ cho Firebase Hosting bằng cách triển khai ở một trong các khu vực sau:

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

Bảng sau đây mô tả một số điểm cần cân nhắc cơ bản khi sử dụng Cloud Functions for Firebase so với Cloud Run. Để xem 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 kết hợp nhiều tác vụ thành các lệnh duy nhất, từ khởi chạy đến xây dựng và triển khai. Các vùng chứa cung cấp nhiều lựa chọn có thể tuỳ chỉnh hơn, vì vậy, các tác vụ thiết lập, xây dựng và triển khai bao gồm các bước riêng biệt.
Môi trường thời gian chạy Yêu cầu Node.js, nhưng bạn có thể chỉ định phiên bản Node.js cần sử dụng. Khi xây dựng vùng chứa, bạn 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à các ngôn ngữ khác

Các khung web cho từng ngôn ngữ được hỗ trợ.

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

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

Cloud Run mức sử dụng + Container Registry dung lượng lưu trữ

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