Ta strona zawiera szczegółowe informacje na temat skalowalnych limitów opartych na wykorzystaniu w Cloud Functions zgodnie z abonamentem Blaze. Limity te dotyczą Projekty Firebase, które wdrażają funkcje w środowisku wykonawczym Node.js 10.
Abonament Blaze zapewnia duże ilości wywołań, czas obliczeniowy i i ruchu w internecie. Jednak wdrożenie funkcji wiąże się z opłaty 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
Określają one czas trwania działania.
Limity szybkości
Ma to wpływ na szybkość, z jaką można wywoływać interfejs Cloud Functions API w celu i zarządzać funkcjami.
Różne typy limitów zostały szczegółowo opisane poniżej. Różnice między limitami w Cloud Functions (1 generacji) a W odpowiednich przypadkach podane są funkcje 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) 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 | 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) | Połączenia z „połączeniem” Interfejs API | 16 na 100 sekund | Nie dotyczy | Nie 2 | na projekt |
Skalowalność
Funkcje Cloud Functions wywoływane przez HTTP skalują się szybko w górę, aby obsługiwać ruch przychodzący a funkcje działające w tle skalują się wolniej. Zdolność funkcji do skalowania zależy od kilku czynników, m.in.:
- Czas potrzebny na wykonanie funkcji (funkcje o krótkim czasie działania mogą ogólnie skalować się w górę, aby obsługiwać więcej równoczesnych zadań ).
- Czas potrzebny na zainicjowanie funkcji zimnego startu.
- Odsetek błędów Twojej funkcji.
Czynniki przejściowe, takie jak obciążenie regionalne i pojemność centrów danych.
Dodatkowe limity funkcji w tle
Limit | Opis | Limit | Można zwiększyć | Zakres | Wersja usługi |
---|---|---|---|---|---|
Maksymalna liczba jednoczesnych wywołań | Maksymalna liczba równoczesnych wywołań jednej funkcji Przykład: jeśli obsługa każdego zdarzenia zajmuje 100 sekund, wywołanie szybkość będzie ograniczona do średnio 30 na sekundę |
3000 | Tak | na funkcję | Tylko 1 generacja |
Maksymalny współczynnik wywołań | Maksymalna liczba zdarzeń obsługiwanych przez jedną funkcję Przykład: jeśli obsługa zdarzenia trwa 100 ms, wywołanie częstotliwość jest ograniczona do 1000 na sekundę, nawet jeśli tylko 100 żądań, są obsługiwane równolegle średnio |
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ń
pojedyncza funkcja Przykład: jeśli zdarzenia mają rozmiar 1 MB, a przetworzenie ich zajmuje 10 minut s, średnia częstotliwość będzie wynosić 1 zdarzenie na sekundę, ponieważ 11. zdarzenie zostanie przetworzone dopiero po przetworzeniu jednego z 10 pierwszych zdarzeń kończy |
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, współczynnik wywołań może 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 zużywa cały przydzielony zasób, ten zasób staje się niedostępne, dopóki limit nie zostanie odświeżony lub zwiększony. Może to oznaczać, że Twoja 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 jest przekroczy limit, przez co funkcja nie zostanie wykonana.
Aby zwiększyć limity powyżej wartości domyślnych wymienionych tutaj, otwórz stronie limitów w Cloud Functions, wybierz limity, które chcesz zmienić, i kliknij EDYTUJ LIMITY, podaj informacje o użytkowniku, jeśli pojawi się taka prośba, i wpisz nowe 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 te typy współczynnik lub limity czasowe:
- 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.