Na tej stronie znajdziesz szczegółowe informacje o skalowalnych limitach wykorzystania Cloud Functions w ramach abonamentu Blaze z płatnością według wykorzystania. Te limity dotyczą projektów Firebase, w których funkcje są wdrażane w środowisku wykonawczym Node.js 10.
Abonament Blaze zapewnia dużą liczbę wywołań, czasu obliczeniowego i ruchu internetowego bez opłat. Jednak wdrożenia funkcji wiążą się z niewielkimi opłatami za miejsce na dane używane na potrzeby kontenera funkcji. Szczegółowe informacje znajdziesz w najczęstszych pytaniach.
Limity dla Cloud Functions obejmują 4 obszary:
Limity zasobów
Mają one wpływ na łączną ilość zasobów, które mogą wykorzystywać Twoje funkcje.
Limity czasu
Wpływają one na czas działania.
Limity szybkości
Wpływają one na częstotliwość, z jaką możesz wywoływać interfejs Cloud Functions API, aby zarządzać funkcjami.
Limity sieci
Wpływają one na limity połączeń wychodzących i instancji.
Różne rodzaje limitów opisujemy bardziej szczegółowo poniżej. W odpowiednich miejscach podano różnice między limitami dla Cloud Functions (1 generacji) i Cloud Functions (2 generacji).
Limity zasobów
Limity zasobów wpływają na łączną ilość zasobów, które mogą wykorzystywać Twoje funkcje. Zakres regionalny dotyczy każdego 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 (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 strumieniowania odpowiedzi. 32 MB w przypadku odpowiedzi nieprzesyłanych strumieniowo. |
Nie | na wywołanie |
| Maksymalny rozmiar zdarzenia w przypadku funkcji reagujących na zdarzenia | Dane wysyłane w zdarzeniach do funkcji działających w tle | 10 MB | 512 KB w przypadku zdarzeń Eventarc. 10 MB w przypadku zdarzeń starszego typu. |
Nie | za zdarzenie |
| Maksymalna ilość pamięci funkcji | Ilość pamięci, jaką może wykorzystywać każde wystąpienie funkcji | 8 GiB | 32 GiB | Nie | na funkcję |
| Maksymalna pamięć projektu | Ilość pamięci w bajtach, z której może korzystać projekt. Jest ona mierzona jako łączna suma pamięci żądanej przez użytkowników w instancjach funkcji w ciągu 1 minuty. | Zależy od wybranego regionu. W regionach o dużej przepustowości ten limit może być wyższy, a w regionach otwartych niedawno – niższy. | Nie dotyczy | Tak | na projekt i region |
| Maksymalne wykorzystanie procesora w projekcie | Ilość procesora (w miliprocesorach wirtualnych), z której może korzystać projekt. Jest ona mierzona jako łączna suma procesorów żądanych przez użytkowników w instancjach funkcji w ciągu 1 minuty. | Zależy od wybranego regionu. W regionach o dużej przepustowości ten limit może być wyższy, a w regionach otwartych niedawno – niższy. | 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, przez jaki funkcja może działać, zanim zostanie przymusowo zakończona. | 540 sekund |
|
Nie | na wywołanie |
Limity szybkości
| Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
|---|---|---|---|---|---|
| Wywołania interfejsu API (ODCZYT) | Wywołania opisujące lub wyświetlające listę funkcji za pomocą interfejsu Cloud Functions API | 5000 na 100 sekund | 1200 na 60 sekund | Tylko w przypadku urządzeń 1 generacji | za projekt (1 generacji) za region (2 generacji) |
| Wywołania interfejsu API (ZAPIS) | wywołania funkcji wdrażania lub usuwania za pomocą interfejsu Cloud Functions API; | 80 na 100 sekund | 60 na 60 sekund | Nie1 | za projekt (1 generacji) za region (2 generacji) |
| Wywołania interfejsu API (CALL) | Wywołania interfejsu API „call” | 16 na 100 sekund | Nie dotyczy | Nie 2 | na projekt |
Limity sieci
Informacje o limitach żądań sieciowych i przepustowości Cloud Functions (2 generacji) znajdziesz w artykule Limity sieciowe.
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ć)
- Rozpoznawanie nazw DNS wychodzących 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ść
Cloud Functions wywoływane przez HTTP szybko się skalują, aby obsłużyć przychodzący ruch, podczas gdy funkcje działające w tle skalują się bardziej stopniowo. Możliwość skalowania funkcji zależy od kilku czynników, m.in.:
- Czas potrzebny na wykonanie funkcji (krótkotrwałe funkcje mogą być zwykle skalowane w górę, aby obsługiwać więcej jednoczesnych żądań).
- 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, średnia częstotliwość wywołań będzie ograniczona do 30 na sekundę. |
3000 | Tak | na funkcję | Tylko 1 generacja |
| Maksymalna częstotliwość wywołań | Maksymalna liczba zdarzeń obsługiwanych przez jedną 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 równoczesnych wywołań pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, a ich przetwarzanie trwa 10 sekund, średnia szybkość wyniesie 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 i 2 generacja |
| Maksymalna przepustowość przychodzących zdarzeń | Maksymalna przepustowość zdarzeń przychodzących do pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, częstotliwość wywoływania 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 i 2 generacja |
Osiągnięcie limitu
Gdy funkcja wykorzysta wszystkie przydzielone zasoby, staną się one niedostępne 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 przekracza limit i funkcja nie może się wykonać.
Aby zwiększyć limity powyżej wartości domyślnych podanych tutaj, otwórz Cloud Functions stronę Limity, wybierz limity, które chcesz zmodyfikować, kliknij Edytuj limity, podaj informacje o użytkowniku, jeśli pojawi się odpowiedni monit, i wpisz nowy limit dla każdego wybranego limitu.
Limity dotyczące wdrażania za pomocą wiersza poleceń Firebase
W przypadku każdej funkcji wdrażanej przez wiersz poleceń Firebase obowiązują te rodzaje limitów szybkości i czasu:
- Wywołania interfejsu API (ODCZYT) – 1 wywołanie na wdrożenie, niezależnie od liczby funkcji.
- Limit: 5000 na 100 sekund
- Wywołania interfejsu API (ZAPIS) – 1 wywołanie na funkcję
- Limit: 80 na 100 sekund
Zapoznaj się też z informacjami o wierszu poleceń Firebase.