Obsługa treści dynamicznych i hostowanie mikroserwisów z użyciem Hostingu Firebase

Firebase Hosting integruje się z opcjami bezserwerowego przetwarzania danych, w tym Cloud Functions for Firebase i Cloud Run. Korzystając z Firebase Hosting w połączeniu z tymi opcjami, możesz hostować mikroserwisy, kierując żądania HTTPS w taki sposób, aby wywoływać funkcje i skonteneryzowane aplikacje do uruchamiania w zarządzanym, bezpiecznym środowisku.

Cloud Functions for Firebase: piszesz i wdrażasz funkcję, czyli kod backendu, który reaguje na określony wyzwalacz. Następnie za pomocą Firebase Hosting możesz kierować żądania HTTPS, aby wywoływać funkcję.

Cloud Run: piszesz i wdrażasz aplikację spakowaną w obraz kontenera. Następnie za pomocą Firebase Hosting możesz kierować żądania HTTPS, aby uruchamiać aplikację w kontenerze.

Przypadki użycia

Jak korzystać z opcji bezserwerowego przetwarzania danych w przypadku Firebase Hosting?

  • Wyświetlanie treści dynamicznych – oprócz wyświetlania treści statycznych w Hosting witrynie możesz wyświetlać dynamicznie generowane odpowiedzi z funkcji lub aplikacji w kontenerze, która wykonuje logikę po stronie serwera.

    Możesz na przykład wskazać wzorzec adresu URL (np. /blog/<blog-post-id>) funkcji, która używa parametru identyfikatora posta na blogu w adresie URL do dynamicznego pobierania treści z bazy danych.

  • Tworzenie interfejsów API REST – możesz utworzyć interfejs API mikroserwisu za pomocą funkcji.

    Funkcje mogą na przykład obsługiwać funkcję logowania w Twojej witrynie. Gdy Twoja witryna jest hostowana pod adresem /, każde żądanie wysłane na adres /api jest przekierowywane do interfejsu API mikroserwisu. Przykład znajdziesz w tym przykładzie open source.

  • Buforowanie treści dynamicznych – możesz skonfigurować buforowanie treści dynamicznych w globalnej sieci CDN.

    Jeśli np. funkcja generuje nowe treści tylko okresowo, możesz przyspieszyć działanie aplikacji, zapisując wygenerowane treści w pamięci podręcznej na co najmniej krótki czas. Możesz też potencjalnie obniżyć koszty wykonania, ponieważ treści są dostarczane z sieci CDN, a nie za pomocą wywołanej funkcji lub aplikacji w kontenerze.

  • Wstępnie renderuj aplikacje jednostronicowe – możesz poprawić SEO i zoptymalizować udostępnianie w różnych sieciach społecznościowych, tworząc dynamiczne meta tagi. Więcej informacji znajdziesz w tym filmie lub w tym przykładzie open source.

Wybieranie opcji bezserwerowej

Zarówno Cloud Functions for Firebase, jak i Cloud Run są zintegrowane z Firebase Hosting i oferują w pełni zarządzane, skalowane automatycznie i bezpieczne środowisko bezserwerowe, ale można ich używać w różnych przypadkach i w zależności od pożądanego poziomu dostosowania konfiguracji.

W przypadku korzystania z dowolnej opcji bezserwerowej najlepiej jest umieścić ją w tej samej lokalizacji co serwery Firebase Hosting, wdrażając ją w jednym z tych regionów:

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

W tabeli poniżej znajdziesz podstawowe informacje o używaniu elementów Cloud Functions for FirebaseCloud Run. Pełną listę limitów, ograniczeń i danych znajdziesz w szczegółowej dokumentacji każdego produktu (Cloud Functions for Firebase lub Cloud Run).

Rozważanie zakupu Cloud Functions for Firebase Cloud Run
Konfiguracja Interfejs wiersza poleceń Firebase łączy wiele zadań w pojedyncze polecenia, od inicjowania po tworzenie i wdrażanie. Kontenery oferują więcej opcji dostosowywania, więc zadania związane z konfiguracją, tworzeniem i wdrażaniem obejmują odrębne etapy.
Środowisko wykonawcze Wymaga Node.js, ale możesz określić wersję Node.js, której chcesz używać. Podczas tworzenia kontenera określasz środowisko wykonawcze.
Obsługa języków i frameworków

JavaScript i TypeScript

Obsługiwane są platformy internetowe, takie jak Express.js.

Dowolny język obsługiwany przez pliki Dockerfile, w tym Go, Node.js, Python, Java i inne.

Obsługiwane są platformy internetowe dla każdego języka.

Limit czasu na żądanie Hosting 60 sekund (patrz uwaga poniżej) 60 sekund (patrz uwaga poniżej)
Równoczesność 1 żądanie na instancję funkcji
(brak współbieżności na instancję)
Do 1000 równoczesnych żądań na instancję kontenera
Płatności Cloud Functions wykorzystanie

Bezpłatny limit wykorzystania, ale wymagane jest Cloud Billingkonto. Zapoznaj się z najczęstszymi pytaniami dotyczącymi Firebase.

Cloud Run wykorzystanie + Container Registry miejsce na dane

Bezpłatny limit wykorzystania, ale wymagane jest Cloud Billingkonto