Ta strona zawiera szczegółowe informacje na temat skalowalnych limitów opartych na wykorzystaniu dla usługi Cloud Functions zgodnie z abonamentem Blaze. Limity te dotyczą Projekty Firebase, które wdrażają funkcje w środowisku wykonawczym Node.js 10.
Abonament Blaze zapewnia dużą liczbę wywołań, czas przetwarzania i ruch internetowy bezpłatnie. Jednak wdrożenie funkcji wiąże się z opłaty na niewielką skalę za miejsce na dane wykorzystywane na kontener funkcji. Więcej informacji znajdziesz w Najczęstszych pytaniach na temat Firebase.
Limity w Google Cloud Functions obejmują 3 obszary:
Limity zasobów
Mają wpływ na łączną ilość zasobów, które mogą zużywać funkcje.
Limity czasu
Wpływają one na czas trwania transmisji.
Limity szybkości
Ma to wpływ na szybkość, z jaką można wywoływać interfejs Cloud Functions API w celu i zarządzać funkcjami.
Poniżej znajdziesz więcej informacji o różnych typach limitów. W stosownych przypadkach podano różnice między limitami w Cloud Functions (1 generacji) a Cloud Functions (2 generacji).
Limity zasobów
Limity zasobów wpływają na łączną ilość zasobów, które mogą zużywać funkcje. Zakres regionalny jest przypisany do konkretnego projektu, a każdy projekt ma własne limity.
Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Liczba funkcji | Łączna liczba funkcji, które można wdrożyć w danym regionie | 1000 | 1000 minus liczba wdrożonych usług Cloud Run | Nie | według regionu |
Maksymalny rozmiar wdrożenia | Maksymalny rozmiar pojedynczego wdrożenia funkcji | 100 MB (skompresowane) w przypadku źródeł. 500 MB (bez kompresji) w przypadku źródeł i modułów. |
Nie dotyczy | Nie | na funkcję |
Maksymalny rozmiar nieskompresowanego żądania HTTP | Dane wysyłane do funkcji HTTP w żądaniu HTTP | 10 MB | 32MB | Nie | na wywołanie |
Maksymalny rozmiar nieskompresowanej odpowiedzi HTTP | Dane wysyłane z funkcji HTTP w odpowiedzi HTTP | 10 MB | 10 MB na potrzeby strumieniowego przesyłania odpowiedzi. 32 MB na odpowiedzi niestrumieniowe. |
Nie | na wywołanie |
Maksymalny rozmiar zdarzenia dla funkcji opartych na zdarzeniach | Dane wysyłane w zdarzeniach do funkcji w tle | 10 MB | 512 KB w przypadku zdarzeń Eventarc. 10 MB w przypadku starszych zdarzeń. |
Nie | na zdarzenie |
Maksymalna pamięć funkcji | Ilość pamięci, której może używać każda instancja funkcji | 8GiB | 32GiB | Nie | na funkcję |
Maksymalna ilość pamięci projektu | Ilość pamięci, która może być używana przez projekt (w walucie). Jest ona mierzona na podstawie łącznej sumy pamięci żądanych przez użytkownika w instancjach funkcji w ciągu 1 minuty. | Zależy od wybranego regionu. Ten limit może być większy w regionach o dużej pojemności lub niższy w niedawno otwieranych regionach. | Nie dotyczy | Tak | na projekt i region |
Maksymalne wykorzystanie procesora w projekcie | Ilość procesora w mili-vCPU, której może używać projekt. Jest ono mierzone jako łączna suma zasobów procesora zażądanych przez użytkownika w różnych instancjach funkcji w ciągu 1 minuty. | Zależy od wybranego regionu. Ten limit może być większy w regionach o dużej pojemności lub niższy w niedawno otwieranych regionach. | Nie dotyczy | Tak | na projekt i region |
Limity czasu
Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Maksymalny czas trwania funkcji | Maksymalny czas działania funkcji przed wymuszonym zakończeniem | 540 sekund | 60 minut w przypadku funkcji HTTP. 9 minut na funkcje oparte na zdarzeniach. |
Nie | na wywołanie |
Limity szybkości
Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Wywołania interfejsu API (READ) | Wywołania do opisania lub wyświetlania listy funkcji za pomocą interfejsu Cloud Functions API | 5000 na 100 sekund | 1200 na 60 sekund | Tylko 1 generacja | według projektu (1 generacji) według regionu (2 generacji) |
Wywołania interfejsu API (WRITE) | Wywołania wdrażania lub usuwania funkcji za pomocą interfejsu Cloud Functions API | 80 na 100 sekund | 60 na 60 sekund | Nie 1 | według projektu (1 generacji) według regionu (2 generacji) |
Wywołania interfejsu API (CALL) | Połączenia z „połączeniem” Interfejs API | 16 na 100 sekund | Nie dotyczy | Nie 2 | na projekt |
Skalowalność
Funkcje w Cloud Functions wywoływane przez HTTP skalują się szybko w celu obsługi ruchu przychodzącego a funkcje działające w tle skalują się wolniej. Zdolność funkcji do skalowania zależy od kilku czynników, m.in.:
- Czas potrzebny na wykonanie funkcji (funkcje o krótkim czasie działania mogą ogólnie skalować się w górę, aby obsługiwać więcej równoczesnych zadań ).
- Czas potrzebny na zainicjowanie funkcji w przypadku uruchomienia „na zimno”.
- Odsetek błędów Twojej funkcji.
Czynniki przejściowe, takie jak obciążenie regionalne i pojemność centrów danych.
Dodatkowe limity funkcji w tle
Limit | Opis | Limit | Można zwiększyć | Zakres | Wersja usługi |
---|---|---|---|---|---|
Maksymalna liczba jednoczesnych wywołań | Maksymalna liczba równoczesnych wywołań jednej funkcji Przykład: jeśli obsługa każdego zdarzenia zajmuje 100 sekund, wywołanie szybkość będzie ograniczona do średnio 30 na sekundę |
3000 | Tak | na funkcję | Tylko 1 generacja |
Maksymalny współczynnik wywołań | Maksymalna liczba zdarzeń obsługiwanych przez jedną funkcję Przykład: jeśli obsługa zdarzenia trwa 100 ms, wywołanie częstotliwość jest ograniczona do 1000 na sekundę, nawet jeśli tylko 100 żądań, są obsługiwane równolegle średnio |
1000 na sekundę | Nie | na funkcję | Tylko 1 generacja |
Maksymalny rozmiar danych zdarzenia równoczesnego | Maksymalny łączny rozmiar przychodzących zdarzeń dla jednoczesnych wywołań jednej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, a ich przetworzenie zajmuje 10 sekund, średnia szybkość będzie wynosić 1 zdarzenie na sekundę, ponieważ 11. zdarzenie nie zostanie przetworzone, dopóki nie zostanie przetworzone jedno z pierwszych 10 zdarzeń |
10 MB | Nie | na funkcję | Pierwsza i druga generacja |
Maksymalna przepustowość zdarzeń przychodzących | Maksymalna przepustowość przychodzących zdarzeń dla pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, częstotliwość wywołania może wynosić maksymalnie 10 na sekundę, nawet jeśli funkcje kończą się w ciągu 100 ms |
10 MB na sekundę | Nie | na funkcję | Pierwsza i druga generacja |
Gdy osiągniesz limit przydziału
Gdy funkcja zużywa cały przydzielony zasób, ten zasób staje się niedostępne, dopóki limit nie zostanie odświeżony lub zwiększony. Może to oznaczać, że Twoja i wszystkie inne funkcje w tym samym projekcie nie będą do tego czasu działać. Funkcja zwraca kod błędu HTTP 500, gdy jeden z zasobów jest przekroczy limit, przez co funkcja nie zostanie wykonana.
Aby zwiększyć limity powyżej wartości domyślnych wymienionych tutaj, otwórz stronie limitów w Cloud Functions, wybierz limity, które chcesz zmienić, i kliknij EDYTUJ LIMITY, podaj informacje o użytkowniku, jeśli pojawi się taka prośba, i wpisz nowe dla każdego wybranego limitu.
Limity dla wdrożenia interfejsu wiersza poleceń Firebase
W przypadku każdej funkcji wdrażanej przez interfejs wiersza poleceń Firebase te typy współczynnik lub limity czasowe:
- Wywołania interfejsu API (READ) – 1 wywołanie na wdrożenie, niezależnie od liczby funkcji.
- Limit: 5000 na 100 sekund
- Wywołania interfejsu API (WRITE) – 1 wywołanie na funkcję
- Limit: 80 na 100 sekund
Zapoznaj się też z informacjami o wierszu poleceń Firebase.