Na tej stronie znajdziesz szczegółowe informacje o skalowalnych limitach opartych na wykorzystaniu w przypadku Cloud Functions zgodnie z abonamentem Blaze z płatnością według wykorzystania. Te limity dotyczą projektów w Firebase, które wdrażają funkcje w środowisku wykonawczym Node.js 10.
Abonament Blaze zapewnia bezpłatnie dużą liczbę wywołań, czas obliczeniowy i ruch internetowy. Jednak wdrożenia funkcji wiążą się z niewielkimi opłatami za miejsce na dane używane przez kontener funkcji. Więcej informacji znajdziesz w najczęstszych pytaniach.
Limity dla: Cloud Functions obejmują 4 obszary:
Limity zasobów
Wpływają one na łączną ilość zasobów, które mogą zużywać funkcje.
Limity czasu
Wpływają one na czas działania.
Ograniczenia liczby żądań
Wpływają one na częstotliwość, z jaką możesz wywoływać interfejs API Cloud Functions, aby zarządzać funkcjami.
Limity sieci
Wpływają one na limity połączeń wychodzących i instancji.
Poniżej znajdziesz szczegółowe informacje o różnych rodzajach limitów. Różnice między limitami dla Cloud Functions (1 generacji) i Cloud Functions (2 generacji) są zaznaczone tam, gdzie jest to konieczne.
Limity zasobów
Limity zasobów wpływają na łączną ilość zasobów, które mogą zużywać funkcje. Zakres regionalny jest określany na projekt, a każdy projekt ma własne limity.
| Limit | Opis | Limit (1 generacja) | Limit (2 generacja) | 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 (nieskompresowane) 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 | 32 MB | Nie | na wywołanie |
| Maksymalny rozmiar nieskompresowanej odpowiedzi HTTP | Dane wysyłane z funkcji HTTP w odpowiedzi HTTP | 10 MB | 10 MB w przypadku odpowiedzi przesyłanych na bieżąco. 32 MB w przypadku odpowiedzi bez strumieniowania. |
Nie | na wywołanie |
| Maksymalny rozmiar zdarzenia w przypadku funkcji opartych na zdarzeniach | Dane wysyłane w zdarzeniach do funkcji działających w tle | 10 MB | 512 KB w przypadku zdarzeń Eventarc. 10 MB w przypadku starszych zdarzeń. |
Nie | na zdarzenie |
| Maksymalna ilość pamięci funkcji | Ilość pamięci, z której może korzystać każda instancja funkcji | 8 GiB | 32 GiB | Nie | na funkcję |
| Maksymalna pamięć projektu | Ilość pamięci (w bajtach), którą może wykorzystać projekt. Jest mierzony jako łączna suma pamięci żądanej przez użytkownika w instancjach funkcji w ciągu 1 minuty. | Zależy od wybranego regionu. Ten limit może być wyższy w regionach o dużej pojemności lub niższy w regionach, które zostały niedawno otwarte. | Nie dotyczy | Tak | na projekt i region |
| Maksymalne wykorzystanie procesora w projekcie | Ilość zasobów procesora (w miliprocesorach wirtualnych), z których może korzystać projekt. Jest mierzony jako łączna suma żądanych przez użytkownika procesorów w instancjach funkcji w ciągu 1 minuty. | Zależy od wybranego regionu. Ten limit może być wyższy w regionach o dużej pojemności lub niższy w regionach, które zostały niedawno otwarte. | Nie dotyczy | Tak | na projekt i region |
Limity czasu
| Limit | Opis | Limit (1 generacja) | Limit (2 generacja) | Można zwiększyć | Zakres |
|---|---|---|---|---|---|
| Maksymalny czas trwania funkcji | Maksymalny czas, przez jaki funkcja może działać, zanim zostanie wymuszone jej zakończenie | 540 sekund |
|
Nie | na wywołanie |
Ograniczenia liczby żądań
| Limit | Opis | Limit (1 generacja) | Limit (2 generacja) | Można zwiększyć | Zakres |
|---|---|---|---|---|---|
| Wywołania interfejsu API (ODCZYT) | wywołania funkcji opisu lub wyświetlania listy za pomocą interfejsu API Cloud Functions; | 5000 na 100 sekund | 1200 na 60 sekund | Tylko w przypadku 1 generacji | na projekt (1 generacja) na region (2 generacja) |
| Wywołania interfejsu API (ZAPIS) | Wywołania do wdrażania lub usuwania funkcji za pomocą interfejsu API Cloud Functions | 80 na 100 sekund | 60 na 60 sekund | Nie 1 | na projekt (1 generacja) na region (2 generacja) |
| Wywołania interfejsu API (CALL) | Wywołania interfejsu API „call” | 16 na 100 sekund | Nie dotyczy | Nie2 | na projekt |
Limity sieciowe
Informacje o limitach żądań sieciowych i przepustowości w Cloud Functions (2 generacji) znajdziesz w artykule o limitach sieci.
W przypadku Cloud Functions (1 generacji) obowiązują te limity sieciowe:
- Połączenia wychodzące na sekundę na instancję: 500 (nie można zwiększyć)
- Wychodzące rozpoznawanie nazw DNS na sekundę na instancję: 100 (nie można zwiększyć)
- Maksymalna liczba pakietów na sekundę na instancję: 80 000
- Maksymalna liczba bitów na sekundę na instancję: 100 000 000
Skalowalność
Funkcje Cloud Functions wywoływane przez HTTP szybko się skalują, aby obsłużyć ruch przychodzący, podczas gdy funkcje działające w tle skalują się bardziej stopniowo. Możliwość skalowania funkcji w górę zależy od kilku czynników, takich jak:
- Czas potrzebny na wykonanie funkcji (funkcje o krótkim czasie działania mogą być zwykle skalowane w górę, aby obsługiwać więcej żądań równoczesnych).
- Czas potrzebny na zainicjowanie funkcji podczas uruchomienia „na zimno”.
- Odsetek błędów funkcji.
czynniki przejściowe, takie jak obciążenie regionalne i pojemność centrum danych;
Dodatkowe limity dla funkcji działających w tle
| Limit | Opis | Limit | Można zwiększyć | Zakres | Wersja usługi |
|---|---|---|---|---|---|
| Maksymalna liczba równoczesnych wywołań | Maksymalna liczba jednoczesnych wywołań pojedynczej funkcji Przykład: jeśli obsługa każdego zdarzenia trwa 100 sekund, częstotliwość wywołań będzie ograniczona średnio do 30 na sekundę. |
3000 | Tak | na funkcję | Tylko 1 generacja |
| Maksymalny współczynnik wywołań | Maksymalna częstotliwość obsługi zdarzeń przez pojedynczą funkcję Przykład: jeśli obsługa zdarzenia trwa 100 ms, częstotliwość wywołań będzie ograniczona do 1000 na sekundę, nawet jeśli równolegle obsługiwanych jest średnio tylko 100 żądań. |
1000 na sekundę | Nie | na funkcję | Tylko 1 generacja |
| Maksymalny rozmiar danych zdarzeń równoczesnych | Maksymalny łączny rozmiar zdarzeń przychodzących do jednoczesnych wywołań pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, a ich przetwarzanie trwa 10 sekund, średnia szybkość będzie wynosić 1 zdarzenie na sekundę, ponieważ 11 zdarzenie nie zostanie przetworzone, dopóki nie zakończy się przetwarzanie jednego z pierwszych 10 zdarzeń. |
10 MB | Nie | na funkcję | 1 generacja i 2 generacja |
| Maksymalna przepustowość zdarzeń przychodzących | Maksymalna przepustowość zdarzeń przychodzących do pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, częstotliwość wywołań 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ę | 1 generacja i 2 generacja |
Osiągnięcie limitu
Gdy funkcja zużyje wszystkie przydzielone zasoby, zasób staje się niedostępny do czasu odświeżenia lub zwiększenia limitu. Może to oznaczać, że Twoja funkcja i wszystkie inne funkcje w tym samym projekcie nie będą działać do tego czasu. Funkcja zwraca kod błędu HTTP 500, gdy jeden z zasobów przekroczy limit i funkcja nie może zostać wykonana.
Aby zwiększyć limity powyżej podanych tu wartości domyślnych, otwórz stronę Cloud Functions Limity, wybierz limity, które chcesz zmienić, kliknij Edytuj limity, podaj informacje o użytkowniku, jeśli pojawi się taka prośba, i wpisz nowy limit dla każdego wybranego limitu.
Limity przydziału dotyczące wdrażania za pomocą wiersza poleceń Firebase
W przypadku każdej funkcji wdrażanej przez interfejs wiersza poleceń Firebase obowiązują te limity częstotliwości i czasu:
- 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.