Na tej stronie znajdziesz szczegółowe informacje o skalowanych limitach Cloud Functionsw zależności od wykorzystania według abonamentu Blaze rozliczanego według wykorzystania. Te limity mają zastosowanie do projektów Firebase, które wdrażają funkcje do środowiska wykonawczego Node.js 10.
Abonament Blaze zapewnia dużą liczbę wywołań, czas przetwarzania i ruch internetowy bezpłatnie. Wdrożenia funkcji powodują jednak niewielkie opłaty za miejsce na dane używane przez kontener funkcji. Więcej informacji znajdziesz w najczęstszych pytaniach dotyczących Firebase.
Limity Firebase obejmują 4 obszary:
Limity zasobów
Te wartości wpływają na łączną ilość zasobów, które mogą zużywać funkcje.
Limity czasowe
Te czynniki wpływają na czas działania.
Ograniczenia liczby żądań
Te limity wpływają na częstotliwość wywoływania interfejsu API Firebase w celu zarządzania funkcjami.
Limity sieci
Te ustawienia wpływają na połączenia wychodzące i limity instancji.
Poniżej znajdziesz więcej informacji o różnych typach limitów. W stosownych przypadkach podajemy różnice między limitami dla Firebase (1 generacji) a Firebase (2 generacji).
Limity zasobów
Limity zasobów wpływają na łączną ilość zasobów, które mogą zużywać funkcje. Zakres regionalny jest ustalany dla 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 mniej liczba wdrożeń 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 żądania HTTP bez kompresji | 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 na strumieniowe odpowiedzi. 32 MB w przypadku odpowiedzi nieprzesyłanych na bieżąco. |
Nie | na wywołanie |
Maksymalny rozmiar zdarzenia w przypadku funkcji reagujących na zdarzenia | Dane wysyłane w ramach zdarzeń do funkcji działających w tle | 10 MB | 512 KB dla 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 | 8 GiB | 32 GiB | Nie | na funkcję |
Maksymalna ilość pamięci projektu | Ilość pamięci (w By) do wykorzystania przez projekt. Jest ona mierzona jako łączna suma pamięci żądanej przez użytkownika w różnych 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 i niższy w regionach, które zostały otwarte niedawno. | Nie dotyczy | Tak | na projekt i region. |
Maksymalny procesor projektu | 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ć wyższy w regionach o dużej pojemności i niższy w regionach, które zostały otwarte niedawno. | Nie dotyczy | Tak | na projekt i region. |
Limity czasowe
Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Maksymalny czas trwania funkcji | Maksymalny czas działania funkcji przed jej przymusowym zakończeniem | 540 sekund | 60 minut w przypadku funkcji HTTP. 9 minut w przypadku funkcji sterowanych zdarzeniami. |
Nie | na wywołanie |
Ograniczenia liczby żądań
Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Wywołania interfejsu API (CZYTANIE) | wywołania opisujące lub wyświetlające listę funkcji za pomocą interfejsu Firebase API; | 5000 na 100 sekund | 1200 na 60 sekund | Tylko w przypadku pierwszej generacji | według projektu (1 generacji) według regionu (2 generacji) |
Wywołania interfejsu API (WRITE) | wywołania dotyczące wdrażania lub usuwania funkcji za pomocą interfejsu API Firebase, | 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) | Wywołania interfejsu API „call” | 16 na 100 sekund | Nie dotyczy | Brak 2 | na projekt |
Limity sieci
Informacje o limitach żądań sieciowych i przepustowości w Firebase (2 generacji) znajdziesz w artykule Limity sieciowe.
W przypadku usługi Firebase (1 generacji) obowiązują te limity sieci:
- Połączenia wychodzące na sekundę na instancję: 500 (nie można zwiększyć)
- Zewnętrzne rozpoznawania nazw DNS na sekundę na wystąpienie: 100 (nie można zwiększyć)
Skalowalność
Firebase wywoływane przez HTTP szybko się skalują, aby obsłużyć napływający ruch, podczas gdy funkcje w tle skalują się stopniowo. Możliwość skalowania funkcji zależy od kilku czynników, takich jak:
- Czas potrzebny do wykonania funkcji (krótkie funkcje mogą się skalować w górę, aby obsługiwać większą liczbę żądań równocześnie).
- Czas potrzebny na zainicjowanie funkcji w przypadku uruchamiania „na zimno”.
- Odsetek błędów 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ń jednej funkcji Przykład: jeśli obsługa każdego zdarzenia zajmuje 100 sekund, częstotliwość wywołań zostanie ograniczona do średnio 30 na sekundę |
3000 | Tak | na funkcję | Tylko pierwsza 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ń zostanie ograniczona do 1000 na sekundę, nawet jeśli równolegle obsługiwanych jest tylko 100 żądań |
1000 na sekundę | Nie | na funkcję | Tylko pierwsza 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ść przychodzących zdarzeń | 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
Gdy funkcja zużyje cały przydzielony zasób, staje się on 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 nie będzie można jej wykonać.
Aby zwiększyć limity powyżej wartości domyślnych podanych tutaj, otwórz Firebasestronę Limity, wybierz limity, które chcesz zmodyfikować, 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 dotyczące wdrażania za pomocą wiersza poleceń Firebase
W przypadku każdej funkcji, którą wdraża wiersz poleceń Firebase, obowiązują te typy limitów szybkoś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.