Limity

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 bezpłatny dostęp do dużej liczby wywołań, czasu obliczeniowego oraz ruchu internetowego. 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 dotyczące Google Cloud Functions obejmują 3 obszary:

  • Limity zasobów

    Mają wpływ 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ść, z jaką możesz wywoływać interfejs Cloud Functions API, aby zarządzać funkcjami.

Różne typy limitów zostały szczegółowo opisane poniżej. W stosownych przypadkach podano różnice między limitami w Cloud Functions (1 generacji) a 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 mniej 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 (bez kompresji) na źródła i moduły.
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 na odpowiedzi niestrumieniowe.
Nie na wywołanie
Maksymalny rozmiar zdarzenia w przypadku funkcji reagujących na zdarzenia Dane wysyłane w zdarzeniach do funkcji 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, 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, której może używać projekt. Jest ona mierzona na podstawie łącznej sumy pamięci żą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 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 do opisania lub wyświetlania listy funkcji za pomocą interfejsu Cloud Functions 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 Cloud Functions API; 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 Nie 2 na projekt

Skalowalność

Funkcje w Cloud Functions wywoływane przez HTTP skalują się szybko w górę w celu obsługi ruchu przychodzącego, 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 (funkcje o krótkim czasie działania mogą się skalować, aby obsługiwać więcej żądań jednocześnie).
  • Czas potrzebny na zainicjowanie funkcji w przypadku uruchomienia „na zimno”.
  • Odsetek błędów 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 obowiązują w przypadku 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ń 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 zdarzeń równoczesnych 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 wykorzystuje cały przydzielony zasób, staje się on niedostępny 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 przekroczy limit i nie będzie można jej wykonać.

Aby zwiększyć limity powyżej wartości domyślnych wymienionych tutaj, otwórz stronę limitów w Cloud Functions, wybierz limity, które chcesz zmodyfikować, kliknij EDYTUJ LIMITY, w razie potrzeby podaj informacje o użytkowniku i wpisz nowy limit dla każdego wybranego limitu.

Limity dla wdrożenia interfejsu 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

Zobacz też dokumentację wiersza poleceń Firebase.