Ta strona zawiera szczegółowe informacje na temat skalowalnych, zależnych od użycia limitów Cloud Functions zgodnie z planem taryfowym Blaze z płatnością 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 dużą ilość wywołań, czasu obliczeniowego i ruchu internetowego za darmo. Jednak wdrożenia funkcji wiążą się z niewielkimi opłatami za miejsce do magazynowania używane przez kontener funkcji. Więcej informacji znajdziesz w często zadawanych pytaniach dotyczących Firebase.
Limity dla Google Cloud Functions obejmują 3 obszary:
Limity zasobów
Wpływają one na całkowitą ilość zasobów, które mogą zużywać Twoje funkcje.
Limity czasowe
Wpływają one na to, jak długo mogą działać.
Limity szybkości
Wpływają one na szybkość wywoływania interfejsu Cloud Functions API i/lub szybkość, z jaką można korzystać z zasobów. Możesz myśleć o przydziałach stawek jako o „zasobach w czasie”.
Poniżej szczegółowo opisano różne rodzaje limitów. W stosownych przypadkach podaje się 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ą zużywać Twoje funkcje. Zakres regionalny jest na projekt, a każdy projekt ma swoje własne ograniczenia.
Kontyngent | Opis | Limit (1. generacja) | Limit (2. generacja) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Liczba funkcji | Całkowita liczba funkcji, które można wdrożyć w regionie | 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 (skompresowany) 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 | na wezwanie |
Maksymalny rozmiar nieskompresowanej odpowiedzi HTTP | Dane wysyłane z funkcji HTTP w odpowiedzi HTTP | 10MB | 10 MB na odpowiedzi przesyłane strumieniowo. 32 MB dla odpowiedzi bez przesyłania strumieniowego. | Nie | na wezwanie |
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. generacja) | 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. 10 minut na funkcje sterowane zdarzeniami. | Nie | na wezwanie |
Limity szybkości
Kontyngent | Opis | Limit (1. generacja) | Limit (2. generacja) | Można zwiększyć | Zakres |
---|---|---|---|---|---|
Wywołania API (CZYTAJ) | Wywołania umożliwiające opisanie lub wyświetlenie listy funkcji za pomocą interfejsu Cloud Functions API | 5000 na 100 sekund | 1200 na 60 sekund | Tylko dla 1. generacji | na projekt (1. generacji) na region (2. gen) |
Wywołania API (WRITE) | Wywołania dotyczące wdrażania lub usuwania funkcji za pośrednictwem interfejsu Cloud Functions API | 80 na 100 sekund | 60 na 60 sekund | Nie 1 | na projekt (1. generacji) na region (2. gen) |
Wywołania API (CALL) | Wywołania do „wywołania” API | 16 na 100 sekund | Nie dotyczy | Nie 2 | na projekt |
Skalowalność
Funkcje Cloud Functions wywoływane przez HTTP szybko się skalują, 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 zakończenia wykonywania funkcji (krótko działające funkcje mogą generalnie skalować się w górę, aby obsłużyć więcej jednoczesnych żądań).
- Czas potrzebny do zainicjowania funkcji przy zimnym starcie
- Limity stawek , jak opisano powyżej.
- Wskaźnik błędów Twojej funkcji.
- Czynniki przejściowe, takie jak regionalne obciążenie i pojemność centrum danych.
Dodatkowe limity dla funkcji w tle
Kontyngent | Opis | Limit | Można zwiększyć | Zakres |
---|---|---|---|---|
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ę |
Maksymalna częstotliwość wywołań | Maksymalna liczba zdarzeń obsługiwanych przez pojedynczą funkcję Przykład: jeśli obsługa zdarzenia zajmie 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ę |
Maksymalny rozmiar danych jednoczesnych zdarzeń | Maksymalny łączny rozmiar zdarzeń przychodzących do równoczesnych wywołań pojedynczej funkcji Przykład: jeśli zdarzenia mają rozmiar 1 MB, a 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ę |
Maksymalna przepustowość przychodzących zdarzeń | Maksymalna przepustowość przychodzących zdarzeń 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 kończą się w ciągu 100 ms | 10 MB na sekundę | Nie | na funkcję |
Kiedy osiągniesz limit 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 przydział i funkcja nie może zostać wykonana.
Aby zwiększyć limity powyżej wartości domyślnych wymienionych tutaj, przejdź do strony Cloud Functions Quotas , wybierz limity, które chcesz zmodyfikować, kliknij EDYTUJ LIMITY , podaj informacje o użytkowniku, jeśli zostaniesz o to poproszony, i wprowadź nowy limit dla każdego wybranego limitu.
Limity przydziału dla wdrożenia Firebase CLI
Każda funkcja wdrażana przez interfejs Firebase CLI ma wpływ na te typy szybkości i limitów czasowych:
- 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 odwołanie do interfejsu Firebase CLI .