Porównanie wersji Cloud Functions

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 oryginalna wersja funkcji z ograniczonymi aktywatorami zdarzeń i możliwościami konfiguracji.

W przypadku nowych funkcji zalecamy wybieranie Cloud Functions (2. generacji) gdziekolwiek jest to możliwe. Planujemy jednak nadal obsługiwać Cloud Functions (1. generacji).

Na tej stronie opisujemy funkcje wprowadzone w Cloud Functions i porównujemy 2 wersje usługi.

Cloud Functions (2. generacji)

Cloud Functions to oferta Firebase Functions-as-a-Service nowej generacji. Cloud Functions (2. generacji) opiera się na Cloud Run i Eventarc, dzięki czemu zapewnia ulepszoną infrastrukturę i szerszy zakres zdarzeń, w tym:Cloud Functions

  • Oparte na Cloud Run: funkcje są tworzone za pomocą Cloud Build i wdrażane jako Cloud Run usługi w domyślnym środowisku wykonawczym Cloud Run. Dzięki temu możesz dostosować funkcję tak jak usługę Cloud Run. Więcej informacji o opcjach konfigurowania usługi, takich jak limity pamięci, zmienne środowiskowe, itp., znajdziesz w dokumentacji Cloud Run.
  • Dłuższy czas przetwarzania żądań: możesz uruchamiać zadania wymagające dłuższego czasu przetwarzania żądań, takie jak przetwarzanie dużych strumieni danych z Cloud Storage lub BigQuery.
  • Większe rozmiary instancji: możesz uruchamiać większe zadania wymagające dużej ilości pamięci, mocy obliczeniowej i równoległego przetwarzania.
  • Ulepszona równoczesność: możesz obsługiwać wiele równoczesnych żądań za pomocą jednej instancji funkcji, aby zminimalizować uruchomienia „na zimno” i skrócić czas oczekiwania.
  • Zarządzanie ruchem: możesz dzielić ruch między różne wersje funkcji lub przywracać funkcję do poprzedniej wersji.
  • Eventarc integracja: natywna obsługa aktywatorów Eventarc, dzięki czemu wszystkie ponad 90 źródeł zdarzeń obsługiwanych przez Eventarc są dostępne w Cloud Functions.
  • 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óły znajdziesz w tabeli porównawczej.

Ponieważ Cloud Functions wdraża funkcje jako usługi w Cloud Run, 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 Artifact Registry tylko
Przekroczenie limitu czasu żądania Do 9 minut
  • Do 60 minut w przypadku funkcji wywoływanych przez HTTP
  • Do 9 minut w przypadku funkcji wywoływanych przez zdarzenia
Konto usługi* Konto usługi Google App Engine (PROJECT_ID@appspot.gserviceaccount.com) Domyślne konto usługi obliczeniowej Google Cloud (PROJECT_NUMBER-compute@developer.gserviceaccount.com)
Rozmiar instancji Do 8 GB pamięci RAM i 2 vCPU Do 16 GiB pamięci RAM i 4 vCPU
Równoczesność 1 żądanie równoczesne na instancję funkcji Do 1000 żądań równoczesnych 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 ono używane przez pakiet Firebase Admin SDK, gdy go inicjujesz bez argumentów.

Ceny

Informacje o cenach znajdziesz w cenniku Firebase.

Koszty związane z Cloud Functions możesz wyświetlić w ten sposób:

  1. W konsoli Google Cloud otwórz stronę Cloud Billing Raporty.
  2. Jeśli pojawi się taka prośba, wybierz konto rozliczeniowe powiązane z Twoim projektem w chmurze Google Cloud.
  3. W panelu Filtry w sekcji Etykiety, dodaj filtr etykiety z kluczem goog-managed-by i 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 blokujące uwierzytelnianie, nie obsługuje tego samego zestawu podstawowych zdarzeń Authentication co 1. generacja.

Jednak ponieważ funkcje 1. i 2. generacji mogą współistnieć w tym samym pliku źródłowym, możesz nadal tworzyć i wdrażać Analytics i podstawowe Authentication aktywatory w 1. generacji razem z funkcjami 2. generacji.