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. Wdrożenia funkcji wiążą się jednak 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 sieciowe
Wpływają one na limity połączeń wychodzących i instancji.
Poniżej znajdziesz szczegółowe informacje o różnych rodzajach limitów. W stosownych przypadkach podane są 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ą zużywać funkcje. Zakres regionalny jest określany dla poszczególnych projektów, 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 przesyłania strumieniowego. |
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 mierzona jako łączna suma pamięci żądanej przez użytkownika w instancjach funkcji w okresie 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 procesorów żądanych 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 |
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 (READ) | Wywołania opisujące lub wyświetlające funkcje 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 | Nie 2 | 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ść zdarzeń obsługiwanych 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, dopóki limit nie zostanie odświeżony lub zwiększony. 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 swoje dane użytkownika, 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.