Firebase Hosting integruje się z opcjami bezserwerowego przetwarzania danych, w tym z Cloud Functions for Firebase i Cloud Run. Korzystając z Firebase Hosting z tymi opcjami, możesz hostować mikroserwisy, kierując żądania HTTPS do aktywowania funkcji i aplikacji w kontenerach, które działają w zarządzanym i bezpiecznym środowisku.
Cloud Functions for Firebase: piszesz i wdrażasz funkcję, czyli kod na backendzie, który reaguje na określony aktywator. Następnie za pomocą Firebase Hosting, możesz kierować żądania HTTPS do aktywowania funkcji do uruchomienia.
Cloud Run: piszesz i wdrażasz aplikację spakowaną w obraz kontenera. Następnie za pomocą Firebase Hosting możesz kierować żądania HTTPS do aktywowania aplikacji w kontenerze.
Przypadki użycia
Jak korzystać z opcji bezserwerowego przetwarzania danych w Firebase Hosting?
Obsługa treści dynamicznych – oprócz obsługi treści statycznych w witrynie Hosting możesz też obsługiwać odpowiedzi generowane dynamicznie przez funkcję lub aplikację w kontenerze, która wykonuje logikę po stronie serwera.
Możesz na przykład skierować wzorzec adresu URL (np.
/blog/<blog-post-id>) do funkcji, która używa parametru ID posta na blogu w adresie URL, aby dynamicznie pobierać treści z bazy danych.Tworzenie interfejsów API REST – za pomocą funkcji możesz utworzyć interfejs API mikroserwisu.
Funkcje mogą na przykład obsługiwać funkcję logowania w Twojej witrynie. Gdy Twoja witryna jest hostowana pod adresem
/, każde żądanie do/apijest 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 na przykład funkcja generuje nowe treści tylko okresowo, możesz przyspieszyć działanie aplikacji, buforując wygenerowane treści przez co najmniej krótki czas. Możesz też obniżyć koszty wykonania, ponieważ treści są obsługiwane z sieci CDN, a nie przez aktywowaną funkcję lub aplikację w kontenerze.
Wstępne renderowanie aplikacji jednostronicowych – możesz poprawić SEO i zoptymalizować udostępnianie w różnych sieciach społecznościowych, tworząc dynamiczne tagi
meta. Aby dowiedzieć się więcej, obejrzyj ten film lub zapoznaj się z tym przykładem open source.
Wybieranie opcji bezserwerowej
Zarówno Cloud Functions for Firebase , jak i Cloud Run integrują się z Firebase Hosting i oferują w pełni zarządzane, automatycznie skalowane i bezpieczne środowisko bezserwerowe. Można je jednak wykorzystywać w różnych przypadkach użycia i na różnych poziomach dostosowania konfiguracji.
W przypadku obu opcji bezserwerowych najlepiej jest umieścić je w tej samej lokalizacji co serwery dla Firebase Hosting, wdrażając je w jednym z tych regionów:
us-west1us-central1us-east1europe-west1asia-east1
W tabeli poniżej opisujemy podstawowe kwestie, które należy wziąć pod uwagę podczas korzystania z Cloud Functions for Firebase i Cloud Run. Pełną listę limitów, ograniczeń i danych znajdziesz w szczegółowej dokumentacji każdej usługi (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 kompilowanie i wdrażanie. | Kontenery oferują więcej opcji dostosowania, dlatego zadania związane z konfiguracją, kompilacją i wdrażaniem obejmują odrębne kroki. |
| Środowisko wykonawcze | Wymaga Node.js, ale możesz określić której wersji Node.js chcesz używać. | Podczas tworzenia kontenera określasz środowisko wykonawcze. |
| Obsługa języków i platform | JavaScript i TypeScript Obsługiwane są platformy internetowe, takie jak Express.js. |
Dowolny język obsługiwany przez Dockerfile, w tym Go, Node.js, Python, Java i inne Obsługiwane są platformy internetowe dla każdego języka. |
| Limit czasu żądania Hosting | 60 sekund (patrz uwaga poniżej) | 60 sekund (patrz uwaga poniżej) |
| Równoczesność | 1 żądanie na instancję funkcji (brak równoczesności na instancję) |
Do 1000 równoczesnych żądań na instancję kontenera |
| Płatności | Cloud Functions użycie
Bezpłatny limit użycia, ale wymagane jest konto Cloud Billing. Zobacz najczęstsze pytania dotyczące Firebase . |
Cloud Run użycie +
Container Registry miejsce na dane
Bezpłatny limit użycia, ale wymagane jest konto Cloud Billing. |