Ta strona zawiera szczegółowe informacje na temat skalowalnych, opartych na użyciu limitów funkcji Cloud Functions zgodnie z planem cenowym Blaze typu płatność zgodnie z rzeczywistym użyciem. Te ograniczenia dotyczą projektów Firebase, które wdrażają funkcje w środowisku wykonawczym Node.js 10.
Plan Blaze zapewnia bezpłatnie hojną liczbę wywołań, czas obliczeniowy i ruch internetowy. Jednak wdrożenia funkcji wiążą się z opłatami na małą skalę za miejsce do magazynowania używane przez kontener funkcji. Zobacz często zadawane pytania dotyczące Firebase, aby uzyskać więcej informacji.
Limity dla Google Cloud Functions obejmują 3 obszary:
Limity zasobów
Mają one wpływ na całkowitą ilość zasobów, które mogą być używane przez funkcje.
Limity czasowe
Wpływają one na to, jak długo rzeczy mogą działać.
Limity stawek
Mają one wpływ na szybkość, z jaką możesz wywoływać interfejs Cloud Functions API do zarządzania swoimi funkcjami.
Różne rodzaje limitów opisano bardziej szczegółowo poniżej. 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, które mogą być używane przez funkcje. Zakres regionalny dotyczy każdego projektu, a każdy projekt ma swoje własne ograniczenia.
Kontyngent | Opis | Ograniczenie (pierwsza generacja) | Limit (2. generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Liczba funkcji | Łączna liczba funkcji, które można wdrożyć na region | 1000 | 1000 minus liczba wdrożonych usług Cloud Run | NIE | na region |
Maksymalny rozmiar wdrożenia | Maksymalny rozmiar wdrożenia pojedynczej funkcji | 100 MB (skompresowane) dla źródeł. 500 MB (nieskompresowane) 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 | 32MB | NIE | za wywołanie |
Maksymalny rozmiar nieskompresowanej odpowiedzi HTTP | Dane wysłane z funkcji HTTP w odpowiedzi HTTP | 10MB | 10 MB na przesyłanie strumieniowe odpowiedzi. 32 MB dla odpowiedzi nie przesyłanych strumieniowo. | NIE | za wywołanie |
Maksymalny rozmiar zdarzenia dla funkcji sterowanych zdarzeniami | Dane wysyłane w zdarzeniach do funkcji w tle | 10MB | 512 KB na zdarzenia Eventarc. 10 MB na starsze wydarzenia. | NIE | na wydarzenie |
Maksymalna pamięć funkcji | Ilość pamięci, z której może korzystać każda instancja funkcji | 8 GiB | 16 GiB | NIE | na funkcję |
Limity czasowe
Kontyngent | Opis | Ograniczenie (pierwsza generacja) | Limit (2. generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Maksymalny czas trwania funkcji | Maksymalny czas, przez jaki funkcja może działać przed wymuszonym zakończeniem | 540 sekund | 60 minut dla funkcji HTTP. 10 minut dla funkcji sterowanych zdarzeniami. | NIE | za wywołanie |
Limity stawek
Kontyngent | Opis | Ograniczenie (pierwsza generacja) | Limit (2. generacji) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Wywołania API (CZYTAJ) | Wywołania opisujące lub wyświetlające funkcje za pośrednictwem interfejsu Cloud Functions API | 5000 na 100 sekund | 1200 na 60 sekund | Tylko dla I gen | na projekt (1. generacja) na region (2. generacja) |
Wywołania API (WRITE) | Wezwania do wdrożenia lub usunięcia 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. generacja) |
Wywołania API (CALL) | Wywołania interfejsu API „wywołań”. | 16 na 100 sekund | Nie dotyczy | nr 2 | na projekt |
Skalowalność
Funkcje Cloud Functions wywoływane przez HTTP skalują się szybko, aby obsłużyć ruch przychodzący, podczas gdy funkcje działające w tle skalują się bardziej stopniowo. Zdolność funkcji do skalowania w górę jest podyktowana kilkoma czynnikami, w tym:
- Czas potrzebny do wykonania funkcji (krótko działające funkcje można generalnie skalować w górę, aby obsłużyć więcej jednoczesnych żądań).
- Czas potrzebny do zainicjowania funkcji przy zimnym starcie .
- Wskaźnik błędów Twojej funkcji.
Czynniki przejściowe, takie jak obciążenie regionalne i pojemność centrum danych.
Dodatkowe limity dla funkcji działających 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ń zostanie ograniczona średnio do 30 na sekundę | 3000 | NIE | na funkcję | Tylko 1 gen |
Maksymalna częstotliwość wywołań | Maksymalna liczba 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 średnio tylko 100 żądań jest obsługiwanych równolegle | 1000 na sekundę | NIE | na funkcję | Tylko 1 gen |
Maksymalny rozmiar danych zdarzenia współbieżnego | 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. 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ść zdarzeń przychodzących | Maksymalna przepustowość zdarzeń przychodzących do pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, to 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. 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 przekracza limit i funkcja nie może zostać wykonana.
Aby zwiększyć przydziały powyżej wartości domyślnych podanych tutaj, przejdź na stronę przydziałów Cloud Functions , wybierz przydziały, które chcesz zmodyfikować, kliknij EDYTUJ PRZYDZIAŁY , podaj informacje o użytkowniku, jeśli zostaniesz o to poproszony, i wprowadź nowy limit przydziału dla każdego wybranego przydziału.
Limity przydziału dla wdrożenia Firebase CLI
W przypadku każdej funkcji wdrażanej przez Firebase CLI mają wpływ następujące rodzaje limitów szybkości i czasu:
- Wywołania API (READ) — 1 wywołanie na wdrożenie, bez względu na liczbę funkcji
- Limit: 5000 na 100 sekund
- Wywołania API (WRITE) - 1 wywołanie na funkcję
- Limit: 80 na 100 sekund
Zobacz także informacje dotyczące Firebase CLI .