Na tej stronie szczegółowo opisano skalowalne, oparte na użyciu limity Cloud Functions zgodnie z planem cenowym Blaze typu płatność zgodnie z rzeczywistym użyciem. Limity te dotyczą projektów Firebase, które wdrażają funkcje w środowisku wykonawczym Node.js 10.
Plan Blaze zapewnia dużą ilość wywołań, czasu obliczeniowego i ruchu internetowego bezpłatnie. Jednak wdrożenia funkcji wiążą się z opłatami na małą skalę za miejsce do przechowywania używane dla kontenera funkcji. Aby uzyskać więcej informacji, zobacz często zadawane pytania dotyczące Firebase.
Limity dla Google Cloud Functions obejmują 3 obszary:
Limity zasobów
Mają one wpływ na całkowitą ilość zasobów, jakie mogą zużywać funkcje.
Limity czasowe
Wpływają one na to, jak długo wszystko może działać.
Limity stawek
Wpływają one na szybkość wywoływania interfejsu Cloud Functions API w celu zarządzania funkcjami.
Poniżej opisano bardziej szczegółowo różne typy limitów. W stosownych przypadkach podano różnice między limitami funkcji Cloud Functions (1. generacji) i Cloud Functions (2. generacji).
Limity zasobów
Limity zasobów wpływają na całkowitą ilość zasobów, jakie mogą zużywać funkcje. Zakres regionalny zależy od projektu, a każdy projekt ma swoje własne ograniczenia.
Kontyngent | Opis | Limit (1. generacja) | Limit (2. generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Liczba funkcji | Całkowita liczba funkcji, które można wdrożyć w każdym regionie | 1000 | 1000 minus liczba wdrożonych usług Cloud Run | NIE | na region |
Maksymalny rozmiar wdrożenia | Maksymalny rozmiar wdrożenia pojedynczej funkcji | 100MB (skompresowany) dla źródeł. 500MB (nieskompresowany) dla źródeł i modułów. | Nie dotyczy | NIE | na funkcję |
Maksymalny rozmiar nieskompresowanego żądania HTTP | Dane wysyłane do funkcji HTTP w żądaniu HTTP | 10MB | 32 MB | NIE | na wywołanie |
Maksymalny rozmiar nieskompresowanej odpowiedzi HTTP | Dane wysłane z protokołu HTTP funkcjonują w odpowiedzi HTTP | 10MB | 10 MB na przesyłanie strumieniowe odpowiedzi. 32MB dla odpowiedzi innych niż przesyłane strumieniowo. | NIE | na wywołanie |
Maksymalny rozmiar zdarzenia dla funkcji sterowanych zdarzeniami | Dane wysyłane w zdarzeniach do funkcji działających w tle | 10MB | 512 KB dla wydarzeń Eventarc. 10 MB na starsze wydarzenia. | NIE | na wydarzenie |
Maksymalna pamięć funkcji | Ilość pamięci, jaką może wykorzystać każda instancja funkcji | 8GiB | 16GiB | NIE | na funkcję |
Limity czasowe
Kontyngent | Opis | Limit (1. generacja) | Limit (2. generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Maksymalny czas trwania funkcji | Maksymalny czas, przez który funkcja może działać, zanim zostanie wymuszona | 540 sekund | 60 minut dla funkcji HTTP. 10 minut w przypadku funkcji sterowanych zdarzeniami. | NIE | na wywołanie |
Limity stawek
Kontyngent | Opis | Limit (1. generacja) | Limit (2. generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Wywołania API (CZYTAJ) | Wywołania umożliwiające opisanie lub wyświetlenie listy funkcji za pośrednictwem interfejsu Cloud Functions API | 5000 na 100 sekund | 1200 na 60 sekund | Tylko dla 1. gen | na projekt (1. generacja) na region (2. generacji) |
Wywołania API (ZAPIS) | Wywołania umożliwiające wdrożenie lub usunięcie funkcji za pośrednictwem interfejsu Cloud Functions API | 80 na 100 sekund | 60 na 60 sekund | nr 1 | na projekt (1. generacja) na region (2. generacji) |
Wywołania API (CALL) | Wywołania interfejsu API „call”. | 16 na 100 sekund | Nie dotyczy | Nie 2 | na projekt |
Skalowalność
Funkcje Cloud Functions wywoływane przez protokół HTTP można szybko skalować, aby obsłużyć ruch przychodzący, natomiast funkcje działające w tle skalują się bardziej stopniowo. Możliwość skalowania funkcji w górę zależy od kilku czynników, w tym:
- Czas potrzebny na wykonanie funkcji (funkcje krótkotrwałe można zazwyczaj skalować w górę, aby obsłużyć więcej jednoczesnych żądań).
- Czas potrzebny na inicjalizację funkcji przy zimnym starcie .
- Poziom błędów Twojej funkcji.
Czynniki przejściowe, takie jak obciążenie regionalne i pojemność centrum danych.
Dodatkowe przydziały dla funkcji w tle
Kontyngent | Opis | Limit | Można zwiększyć | Zakres | Wersja Produktu |
---|---|---|---|---|---|
Maksymalna liczba jednoczesnych wywołań | Maksymalna liczba jednoczesnych wywołań pojedynczej funkcji Przykład: jeśli obsługa każdego zdarzenia zajmie 100 sekund, częstotliwość wywołań będzie ograniczona średnio do 30 na sekundę | 3000 | Tak | na funkcję | Tylko 1 gen |
Maksymalna częstotliwość wywoływania | Maksymalna liczba zdarzeń obsługiwanych przez pojedynczą 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ównolegle obsługiwanych będzie średnio 100 żądań | 1000 na sekundę | NIE | na funkcję | Tylko 1 gen |
Maksymalny rozmiar danych współbieżnego zdarzenia | Maksymalny łączny rozmiar zdarzeń przychodzących do równoczesnych wywołań pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB i ich przetwarzanie zajmuje 10 sekund, średnia szybkość wyniesie 1 zdarzenie na sekundę, ponieważ 11-te zdarzenie nie zostanie przetworzone, dopóki nie zakończy się przetwarzanie jednego z pierwszych 10 zdarzeń | 10MB | NIE | na funkcję | 1. gen. i 2. gen |
Maksymalna przepustowość przychodzących zdarzeń | 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 jeśli funkcje kończą się w ciągu 100 ms | 10 MB na sekundę | NIE | na funkcję | 1. gen. i 2. gen |
Po osiągnięciu limitu przydziału
Gdy funkcja zużywa cały przydzielony zasób, zasób staje się niedostępny do czasu odświeżenia lub zwiększenia przydziału. 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 można wykonać funkcji.
Aby zwiększyć limity powyżej podanych tutaj ustawień domyślnych, przejdź do strony Cloud Functions Limity , wybierz limity, które chcesz zmodyfikować, kliknij EDYTUJ LICZBY , podaj informacje o użytkowniku, jeśli zostaniesz o to poproszony, i wprowadź nowy limit limitu dla każdego wybranego limitu.
Limity przydziału dla wdrożenia Firebase CLI
Każda funkcja wdrażana przez interfejs CLI Firebase ma wpływ na następujące rodzaje limitów szybkości i czasu:
- Wywołania API (CZYTAJ) — 1 wywołanie na wdrożenie, niezależnie od liczby funkcji
- Limit: 5000 na 100 sekund
- Wywołania API (WRITE) - 1 wywołanie na funkcję
- Limit: 80 na 100 sekund
Zobacz także informacje o interfejsie CLI Firebase .