Dostępne są 2 wersje Cloud Functions for Firebase:
- Cloud Functions (2 generacji), która wdraża funkcje jako usługi w Cloud Run, co umożliwia 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 FunctionsCloud 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 środowiska wykonawczego Cloud Run. Dzięki temu możesz dostosować funkcję tak samo 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, która udostępnia w Eventarc wszystkie ponad 90 źródeł zdarzeń obsługiwanych przez Eventarc do 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 |
|
| Konto usługi* | Konto usługi Google App Engine (PROJECT_ID@ |
Domyślne konto usługi Google Cloud Compute (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 sekcji Plany cenowe Firebase.
Koszty związane z Cloud Functions możesz wyświetlić w ten sposób:
- W konsoli Google Cloud otwórz stronę Cloud Billing 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 etykiety 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 blokujące uwierzytelnianie, nie obsługuje tego samego zestawu podstawowych Authentication zdarzeń co 1 generacja.
Ponieważ jednak 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.