Limity

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
  • 60 minut w przypadku funkcji HTTP.
  • 1800 sekund w przypadku funkcji wywoływanych przez harmonogram lub kolejkę zadań.
  • 540 sekund w przypadku funkcji wywoływanych przez zdarzenia.
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;

Funkcje działające w tle mają dodatkowe limity, o których piszemy poniżej. Te limity nie dotyczą funkcji HTTP 1 generacji.

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.