Na tej stronie znajdziesz szczegółowe informacje o skalowalnych limitach opartych na wykorzystaniu usługi w Cloud Functions zgodnie z abonamentem Blaze rozliczanym według wykorzystania. Te limity dotyczą projektów Firebase, które wdrażają funkcje w środowisku wykonawczym Node.js 10.
Abonament Blaze zapewnia bezpłatnie duże ilości wywołań, czas obliczeniowy i ruch internetowy. Wdrożenia funkcji wiążą się jednak z niewielkimi opłatami za miejsce na dane wykorzystywane przez kontener funkcji. Więcej informacji znajdziesz w najczęstszych pytaniach o Firebase.
Limity dla Google Cloud Functions obejmują 3 obszary:
Limity zasobów
Mają one wpływ na łączną ilość zasobów, które mogą wykorzystywać funkcje.
Limity czasu
Mają wpływ na to, jak długo urządzenie może działać.
Limity liczby żądań
Mają one wpływ na szybkość wywoływania interfejsu Cloud Functions API w celu zarządzania funkcjami.
Różne rodzaje limitów zostały szczegółowo opisane poniżej. W stosownych przypadkach widoczne są różnice między limitami w 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 przypisany do konkretnego 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 wdrożenia jednej funkcji | 100 MB (skompresowany) na potrzeby źródeł. 500 MB (bez kompresji) na źródła i moduły. |
Nie dotyczy | Nie | na funkcję |
Maksymalny rozmiar nieskompresowanego żądania HTTP | Dane wysłane do funkcji HTTP w żądaniu HTTP | 10 MB | 32MB | Nie | na wywołanie |
Maksymalny rozmiar nieskompresowanej odpowiedzi HTTP | Dane wysyłane z funkcji HTTP w odpowiedzi HTTP | 10 MB | 10 MB do strumieniowego przesyłania odpowiedzi. 32 MB w przypadku odpowiedzi niestrumieniowych. |
Nie | na wywołanie |
Maksymalny rozmiar zdarzenia w przypadku funkcji opartych na zdarzeniach | Dane wysyłane w zdarzeniach do funkcji w tle | 10 MB | 512 KB w przypadku zdarzeń Eventarc. 10 MB w przypadku starszych wydarzeń. |
Nie | na zdarzenie |
Maksymalna ilość pamięci funkcji | Ilość pamięci, której może używać każda instancja funkcji | 8GiB | 32GiB | Nie | na funkcję |
Limity czasu
Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Maksymalny czas trwania funkcji | Maksymalny czas działania funkcji przed wymuszeniem zakończenia | 540 sekund | 60 minut na potrzeby funkcji HTTP. 9 minut w przypadku funkcji opartych na zdarzeniach. |
Nie | na wywołanie |
Limity liczby żądań
Limit | Opis | Limit (1 generacji) | Limit (2 generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Wywołania interfejsu API (ODCZYT) | Wywołania do opisywania lub wyświetlania funkcji za pomocą interfejsu Cloud Functions API | 5000 na 100 sekund | 1200 na 60 sekund | Tylko 1 generacji | na projekt (1 generacji) na region (2 generacji) |
Wywołania interfejsu API (WRITE) | Wywołania umożliwiające wdrażanie lub usuwanie funkcji za pomocą interfejsu Cloud Functions API | 80 na 100 sekund | 60 na 60 sekund | Nie1 | na projekt (1 generacji) na region (2 generacji) |
Wywołania interfejsu API (CALL) | Wywołania interfejsu API „call” | 16 na 100 sekund | Nie dotyczy | Nie2 | na projekt |
Skalowalność
Funkcje w Cloud Functions wywoływane przez HTTP szybko skalują się w górę, aby obsługiwać ruch przychodzący, podczas gdy funkcje w tle skalują się stopniowo. Zdolność funkcji do skalowania w górę zależy od kilku czynników, w tym:
- Czas potrzebny na wykonanie wykonania funkcji (funkcje działające krótko mogą być zwykle skalowane w górę, aby obsłużyć więcej równoczesnych żądań).
- Czas potrzebny na zainicjowanie funkcji podczas zimnego uruchomienia.
- Odsetek błędów funkcji.
Czynniki przejściowe, takie jak obciążenie regionalne i pojemność centrum danych.
Dodatkowe limity dla funkcji w tle
Limit | Opis | Limit | Można zwiększyć | Zakres | Wersja usługi |
---|---|---|---|---|---|
Maksymalna liczba równoczesnych wywołań | Maksymalna liczba równoczesnych wywołań pojedynczej funkcji Przykład: jeśli obsługa każdego zdarzenia trwa 100 sekund, częstotliwość wywołań będzie średnio ograniczona do 30 na sekundę |
3000 | Tak | na funkcję | Tylko 1 generacja |
Maksymalny współczynnik wywołań | Maksymalna częstotliwość 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 wtedy, gdy średnio będzie obsługiwać 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 przetwarzanie ich trwa 10 sekund, średnia częstotliwość będzie wynosić 1 zdarzenie na sekundę, ponieważ 11 zdarzenie zostanie przetworzone dopiero po zakończeniu przetwarzania jednego z pierwszych 10 zdarzeń |
10 MB | Nie | na funkcję | 1 generacji i 2nd gen |
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 wtedy, gdy funkcje zakończą się w ciągu 100 ms |
10 MB na sekundę | Nie | na funkcję | 1 generacji i 2nd gen |
Po osiągnięciu limitu
Gdy funkcja wykorzystuje cały przydzielonych zasobów, 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ą do tego czasu działać. Funkcja zwraca kod błędu HTTP 500, gdy jeden z zasobów przekracza limit i nie można jej wykonać.
Aby zwiększyć limity powyżej wartości domyślnych wymienionych tutaj, otwórz stronę limitów Cloud Functions, wybierz limity, które chcesz zmienić, kliknij EDYTUJ LIMITY, podaj informacje o swoim użytkowniku (jeśli pojawi się taka prośba) i wpisz nowy limit dla każdego wybranego limitu.
Limity dla wdrożenia interfejsu wiersza poleceń Firebase
W przypadku każdej funkcji wdrażanej przez interfejs wiersza poleceń Firebase ma to wpływ na te typy limitów czasu i szybkości:
- Wywołania interfejsu API (ODCZYT) – 1 wywołanie na wdrożenie bez względu na liczbę funkcji.
- Limit: 5000 na 100 sekund
- Wywołania interfejsu API (WRITE) – 1 wywołanie na funkcję
- Limit: 80 na 100 sekund
Zobacz też dokumentację interfejsu wiersza poleceń Firebase.