Limity i kwoty chronią infrastrukturę Google przed zautomatyzowanymi procesami, które wykorzystują interfejs Alert Center API w nieodpowiedni sposób. Nadmierna liczba żądań z interfejsu API może być spowodowana nieszkodliwą literówką lub nieefektywnie zaprojektowanym systemem, który wykonuje niepotrzebne wywołania interfejsu API. Niezależnie od przyczyny blokowanie ruchu z określonego źródła po osiągnięciu określonego poziomu jest niezbędne dla ogólnej kondycji systemu Google Workspace. Dzięki temu działania jednego dewelopera nie mogą negatywnie wpłynąć na większą społeczność.
W mało prawdopodobnym przypadku niepowodzenia żądania interfejsu API otrzymasz kod stanu HTTP. Kod stanu 403 zawiera informacje o błędnych danych wejściowych, a kod stanu HTTP 503 zawiera informacje o błędach wskazujące, które limity interfejsu API zostały przekroczone. Te odpowiedzi umożliwiają aplikacji niestandardowej wykrywanie błędów i podejmowanie odpowiednich działań.
Jeśli Twoje żądania muszą zostać zrealizowane w określonym czasie, wysyłaj je równolegle lub używaj wielu wątków w aplikacji w języku Java lub C#. Przykładem żądań równoległych jest wysyłanie próśb o małe partie e-maili od różnych użytkowników zamiast dodawania lub usuwania wielu e-maili od jednego użytkownika jednocześnie. W przypadku wątków zacznij od 10 wątków, po jednym na adres e-mail użytkownika. Pamiętaj, że zalecenie dotyczące wątków ma swoje wady i nie jest przydatne we wszystkich sytuacjach związanych z interfejsem API. Jeśli liczba żądań będzie zbyt duża, wystąpią błędy związane z limitem.
W przypadku wszystkich błędów związanych z czasem (maksymalnie N elementów przez N sekund na wątek), zwłaszcza błędów z kodem stanu 503, zalecamy, aby kod przechwytywał wyjątek i za pomocą algorytmu wykładniczego wycofywania odczekiwał krótką chwilę przed ponowną próbą wykonania nieudanego wywołania. Przykładem użycia interfejsu Alert Center API w przypadku jednego wątku jest odczekanie 5 sekund i ponowienie nieudanego wywołania. Jeśli żądanie zostało wykonane, powtórz ten wzorzec w przypadku pozostałych wątków. Jeśli druga prośba nie zostanie zrealizowana, aplikacja powinna zmniejszyć częstotliwość wysyłania próśb, dopóki nie zostanie zrealizowana. Możesz na przykład wydłużyć początkowe 5-sekundowe opóźnienie do 10 sekund i ponownie spróbować wykonać połączenie, które się nie powiodło. Określ też limit ponownych prób. Na przykład ponów żądanie 5–7 razy z różnymi czasami opóźnienia, zanim aplikacja zwróci użytkownikowi błąd.
| Kategorie limitów interfejsu API | Limity |
|---|---|
| Limity QPS i QPD w Centrum alertów | Interfejs API ogranicza liczbę żądań w projekcie konsoli interfejsów API. Maksymalna liczba żądań na sekundę w projekcie API (QPS projektu) wynosi 1000. Maksymalna liczba żądań na sekundę na użytkownika (QPS użytkownika) wynosi 150.
Jeśli te limity zostaną przekroczone, serwer zwróci kod stanu HTTP |
| Inne rodzaje limitów | Ograniczenia i wytyczne |
|---|---|
| Format danych, domyślny | Domyślny format danych to JSON. |
| Nieautoryzowane żądania | Google nie zezwala na nieautoryzowane żądania do tego interfejsu API. Żądanie jest uznawane za nieautoryzowane, jeśli nie podano tokena autoryzacji. Więcej informacji znajdziesz w artykule Autoryzowanie żądań. |
Prośba o zwiększenie limitu dla projektu
W zależności od wykorzystania zasobów w projekcie możesz poprosić o dostosowanie limitu. Wywołania interfejsu API przez konto usługi są traktowane jako korzystanie z jednego konta. Wysłanie wniosku o zmianę limitu nie gwarantuje jego zatwierdzenia. Zatwierdzenie próśb o dostosowanie limitu, które znacznie zwiększają jego wartość, może potrwać dłużej.
Nie wszystkie projekty mają takie same limity. W miarę upływu czasu i zwiększania wykorzystania Google Cloud wartości limitów mogą wymagać zwiększenia. Jeśli spodziewasz się znacznego wzrostu wykorzystania, możesz z wyprzedzeniem poprosić o zmianę limitów na stronie Limity w konsoli Google Cloud.
Więcej informacji znajdziesz w tych materiałach:
- Informacje o dostosowywaniu limitów
- Wyświetlanie bieżącego wykorzystania limitu i limitów
- Wysyłanie prośby o wyższy limit