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 z tymi opcjami, możesz hostować mikroserwisy, kierując żądania HTTPS, aby wywoływać funkcje i aplikacje skonteneryzowane w zarządzanym, bezpiecznym środowisku.

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

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

Przypadki użycia

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

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

    Możesz na przykład wskazać wzór 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 – za pomocą funkcji możesz utworzyć interfejs API mikrousługi.

    Mogą one na przykład obsługiwać funkcję logowania w Twojej witrynie. Ponieważ Twoja witryna jest hostowana pod adresem /, każda prośba wysłana do adresu /api jest przekierowywana do interfejsu API mikroserwisu. Przykładem jest ten przykładowy projekt open source.

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

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

  • Przedrenderuj aplikacje typu single-page – możesz poprawić SEO i zoptymalizować udostępnianie w różnych sieciach społecznościowych, tworząc dynamiczne metatagi. Aby dowiedzieć się więcej, obejrzyj ten film lub zapoznaj się z tą próbką open source.

Wybieranie opcji bezserwerowej

Zarówno Cloud Functions for Firebase, jak i Cloud Run integrują się z usługą Firebase Hosting i oferują w pełni zarządzane, automatycznie skalowane i bezpieczne środowisko bez serwera, ale te dwie opcje można wykorzystać w różnych przypadkach użycia i w zależności od pożądanego poziomu konfiguracji.

W przypadku korzystania z dowolnej opcji bezserwerowej najlepiej jest umieścić ją w tym samym miejscu 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 kilka podstawowych wskazówek dotyczących używania funkcji Cloud Functions for Firebase w porównaniu z funkcją Cloud Run. Pełną listę limitów, limitów i wskaźników znajdziesz w szczegółowej dokumentacji poszczególnych usług (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 do kompilowania i wdrażania. Kontenery oferują więcej opcji dostosowania, dlatego zadania konfiguracji, kompilacji i wdrażania obejmują oddzielne kroki.
Środowisko wykonawcze Wymaga środowiska Node.js, ale możesz określić, której wersji tego środowiska chcesz użyć. Podczas tworzenia kontenera określasz środowisko wykonawcze.
Obsługa języków i ramek

JavaScript i TypeScript

Obsługiwane są frameworki 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ą frameworki internetowe dla każdego języka.

Przekroczenie limitu czasu żądania Hosting 60 sekund (patrz uwaga poniżej) 60 sekund (patrz uwaga poniżej)
Równoczesność 1 żądanie na instancję funkcji
(bez równoczeności na instancję)
Do 1000 równoczesnych żądań na instancję kontenera
Płatności Cloud Functions użycie

Bezpłatny limit użytkowania, ale wymagane jest konto Cloud Billing. Zapoznaj się z najczęstszymi pytaniami na temat Firebase.

Cloud Run użycie + Container Registry miejsce na dane

Bezpłatny limit, ale wymagane jest konto Cloud Billing