Dostępne są 2 wersje Cloud Functions for Firebase:
- Cloud Functions (2 generacji), która wdraża funkcje jako usługi w Cloud Run, umożliwiając ich wywoływanie za pomocą Eventarc i Pub/Sub.
- Cloud Functions (1 generacji), czyli pierwotna wersja funkcji z ograniczonymi wyzwalaczami zdarzeń i możliwościami konfiguracji.
W przypadku nowych funkcji zalecamy wybieranie w miarę możliwości Cloud Functions (2 generacji). Planujemy jednak nadal obsługiwać Cloud Functions (1 generacji).
Na tej stronie opisujemy funkcje wprowadzone w Cloud Functions i porównujemy obie wersje produktu.
Cloud Functions (2 generacji)
Cloud Functions to usługa nowej generacji Firebase typu FaaS (Functions-as-a-Service). Usługa Cloud Functions (2 generacji), która jest oparta na Cloud Run i Eventarc, zapewnia ulepszoną infrastrukturę i szerszy zakres obsługiwanych wydarzeń, w tym:Cloud Functions
- Oparte na Cloud Run: funkcje są tworzone za pomocą Cloud Build i wdrażane jako usługi Cloud Run przy użyciu domyślnego Cloud Runśrodowiska wykonawczego. Dzięki temu możesz dostosować funkcję tak jak Cloud Runusługę. Zapoznaj się z Cloud Run dokumentacją, aby poznać opcje konfigurowania usługi, takie jak limity pamięci, zmienne środowiskowe itp.
- Dłuższy czas przetwarzania żądań: uruchamiaj zbiory zadań z dłuższymi żądaniami, np. przetwarzanie dużych strumieni danych z Cloud Storage lub BigQuery.
- Większe rozmiary instancji: uruchamiaj większe zadania w pamięci, wymagające dużej mocy obliczeniowej i równoległe.
- Większa współbieżność: obsługa wielu równoczesnych żądań za pomocą jednej instancji funkcji, aby zminimalizować uruchomienia „na zimno” i skrócić czas oczekiwania.
- Zarządzanie ruchem: dzielenie ruchu między różne wersje funkcji lub przywracanie funkcji do poprzedniej wersji.
- Integracja z Eventarc: natywna obsługa aktywatorów Eventarc, która udostępnia w Cloud Functions ponad 90 źródeł zdarzeń obsługiwanych przez Eventarc.
- Szersza obsługa CloudEvents: obsługa standardowych w branży CloudEvents we wszystkich środowiskach wykonawczych języków, co zapewnia spójne środowisko programistyczne.
Szczegółowe informacje znajdziesz w tabeli porównawczej.
Dzieje się tak, ponieważ Cloud Functions wdraża funkcje jako usługi na platformie Cloud Run, a Cloud Functions współdzieli limity zasobów z Cloud Run. Zobacz Limity.
Tabela porównawcza
| Funkcja | Cloud Functions (1 generacji) | Cloud Functions |
|---|---|---|
| Rejestr obrazów | Container Registry lub Artifact Registry | Tylko Artifact Registry |
| Przekroczenie limitu czasu żądania | Do 9 minut |
|
| Konto usługi* | Konto usługi Google App Engine (PROJECT_ID@ |
Domyślne konto usługi Compute Google Cloud (PROJECT_NUMBER-compute@developer.gserviceaccount.com) |
| Rozmiar instancji | Do 8 GB pamięci RAM z 2 procesorami wirtualnymi | Do 16 GiB pamięci RAM z 4 procesorami wirtualnymi |
| Równoczesność | 1 żądanie równoczesne na instancję funkcji | Do 1000 równoczesnych żądań na instancję funkcji |
* Jest to domyślne konto usługi używane do uzyskiwania dostępu do interfejsów API Firebase lub Cloud z uruchomionej funkcji. Jest on używany przez pakiet Firebase Admin SDK, gdy inicjujesz go bez argumentów.
Ceny
Informacje o cenach znajdziesz na stronie Abonamenty i ceny Firebase.
Koszty związane z Cloud Functions możesz sprawdzić w ten sposób:
- W konsoli Google Cloud otwórz Cloud Billing stronę Raporty.
- Jeśli pojawi się taka prośba, wybierz konto rozliczeniowe powiązane z Twoim projektem Google Cloud.
- W panelu Filtry w sekcji Etykiety dodaj filtr etykiet z kluczem
goog-managed-byi wartościącloudfunctions.
Ograniczenia
Cloud Functions for Firebase (2 generacji) nie obsługuje zdarzeń Analytics.
Chociaż Cloud Functions for Firebase (2 generacji) obsługuje zdarzenia blokowania uwierzytelniania, nie obsługuje tego samego zestawu podstawowych zdarzeń Authentication co 1 generacja.
Funkcje 1 i 2 generacji mogą jednak współistnieć w tym samym pliku źródłowym, więc możesz nadal tworzyć i wdrażać Analytics i podstawowe wyzwalacze Authentication w funkcjach 1 generacji razem z funkcjami 2 generacji.