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 Firebase i Cloud 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 |