Limity

Na tej stronie szczegółowo opisaliśmy skalowalne limity w Cloud Functions oparte na wykorzystaniu, zgodne z abonamentem Blaze z płatnościami według wykorzystania. Te limity dotyczą projektów Firebase, które wdrażają funkcje w środowisku wykonawczym Node.js 10.

Abonament Blaze zapewnia bezpłatny dostęp do dużej liczby wywołań, czasu obliczeniowego oraz ruchu internetowego. Wdrożenie funkcji wiąże się jednak z opłatami na niewielką skalę za miejsce na dane wykorzystywane na kontener funkcji. Więcej informacji znajdziesz w Najczęstszych pytaniach na temat Firebase.

Limity w Google Cloud Functions obejmują 3 obszary:

  • Limity zasobów

    Mają wpływ na łączną ilość zasobów, które mogą zużywać funkcje.

  • Limity czasu

    Wpływają one na czas trwania transmisji.

  • Limity szybkości

    Ma to wpływ na szybkość, z jaką możesz wywoływać interfejs Cloud Functions API w celu zarządzania funkcjami.

Różne typy limitów zostały szczegółowo opisane poniżej. W stosownych przypadkach podane 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 regionie 1000 1000 minus liczba wdrożonych usług Cloud Run Nie według regionu
Maksymalny rozmiar wdrożenia Maksymalny rozmiar wdrożenia z jedną funkcją 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 nieskompresowanego żądania HTTP Dane wysył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 na potrzeby strumieniowego przesyłania odpowiedzi.
32 MB na odpowiedzi niestrumieniowe.
Nie na wywołanie
Maksymalny rozmiar zdarzenia dla 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 zdarzeń.
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 wymuszonym zakończeniem 540 sekund 60 minut na funkcje HTTP.
9 minut na funkcje oparte na zdarzeniach.
Nie na wywołanie

Limity szybkości

Limit Opis Limit (1 generacji) Limit (2 generacji) Można zwiększyć Zakres
Wywołania interfejsu API (READ) Wywołania do opisania lub wyświetlania listy funkcji za pomocą interfejsu Cloud Functions API 5000 na 100 sekund 1200 na 60 sekund Tylko 1 generacja na projekt (1 generacji)
na region (2 generacji)
Wywołania interfejsu API (WRITE) Wywołania wdrażania lub usuwania funkcji za pomocą interfejsu Cloud Functions API 80 na 100 sekund 60 na 60 sekund Nie 1 na projekt (1 generacji)
na region (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. Zdolność funkcji do skalowania w górę zależy od kilku czynników, m.in.:

  • Czas potrzebny na wykonanie funkcji (krótkie funkcje zwykle skalują się w górę, by obsłużyć więcej żądań równoczesnych).
  • Czas potrzebny na zainicjowanie funkcji przy uruchomieniu „na zimno”.
  • Odsetek błędów Twojej funkcji.
  • Czynniki przejściowe, takie jak obciążenie regionalne i pojemność centrów danych.

Funkcje działające w tle mają dodatkowe ograniczenia, które zostały opisane poniżej. Te limity nie dotyczą funkcji HTTP 1 generacji.

Dodatkowe limity funkcji w tle

Limit Opis Limit Można zwiększyć Zakres Wersja usługi
Maksymalna liczba jednoczesnych wywołań Maksymalna liczba jednoczesnych wywołań jednej funkcji
Przykład: jeśli obsługa każdego zdarzenia trwa 100 sekund, częstotliwość wywołań będzie ograniczona do 30 na sekundę
3000 Tak na funkcję Tylko 1 generacja
Maksymalny współczynnik wywołań Maksymalna częstotliwość zdarzeń obsługiwanych przez 1 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ównocześnie obsługiwanych będzie średnio 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ń jednej funkcji
Przykład: jeśli zdarzenia mają rozmiar 1 MB, a ich przetwarzanie trwa 10 sekund, średnia częstotliwość będzie 1 zdarzenie na sekundę, ponieważ 11. zdarzenie zostanie przetworzone dopiero po zakończeniu przetwarzania jednego z 10 pierwszych zdarzeń
10 MB Nie na funkcję 1 generacji i 2 generacji
Maksymalna przepustowość zdarzeń przychodzących Maksymalna przepustowość zdarzeń przychodzących do jednej 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 zakończą się w ciągu 100 ms
10 MB na sekundę Nie na funkcję 1 generacji i 2 generacji

Po osiągnięciu limitu

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 do tego czasu Twoja funkcja i pozostałe funkcje tego samego projektu nie będą działać. Funkcja zwraca kod błędu HTTP 500, gdy jeden z zasobów przekracza limit i nie można wykonać tej funkcji.

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

Każda funkcja wdrażana przez interfejs wiersza poleceń Firebase ma wpływ na te rodzaje stawek i limitów 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.