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 cả 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 vi dịch vụ 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, đây 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 các yêu cầu HTTPS để kích hoạt chức năng 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 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 bằng cách 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 hoá đang thực hiện logic phía máy chủ.

    Ví dụ: bạn có thể trỏ một mẫu URL (chẳng hạn 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 một API vi dịch vụ 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 được chuyển hướng đến API vi dịch vụ của bạn. Để xem ví dụ, hãy tham khảo 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 vào bộ nhớ đệm cho nội dung động 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 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 các thẻ meta động. Để tìm hiểu thêm, hãy xem video này hoặc xem mẫu 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 phi máy chủ được quản lý hoàn toàn, có khả năng tự động mở rộng quy mô và bảo mật, nhưng bạn có thể tận dụng hai 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 đơn lẻ, từ việc khởi chạy đến việc tạo và triển khai. Các vùng chứa cung cấp nhiều lựa chọn tuỳ chỉnh hơn, vì vậy, các tác vụ thiết lập, tạo 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 tạo 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 đều được hỗ trợ.

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

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

Hết thời gian chờ yêu cầu Hosting 60 giây (xem phần Lưu ý bên dưới) 60 giây (xem phần Lưu ý bên dưới)
Tính đồng thời 1 yêu cầu cho mỗi phiên bản hàm
(không có tính đồng thời cho mỗi phiên bản)
Tối đa 1.000 yêu cầu đồng thời trên mỗi phiên bản 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ó tài khoảnCloud Billing. Hãy xem phần Câu hỏi thường gặp về Firebase.

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

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