Limity i kwoty
Liczby potrzebne przed zaprojektowaniem funkcji i znane luki w obecnej platformie.
1. Funkcja
| Limit | Wartość | Skąd to pochodzi |
|---|---|---|
| Nazwa | Od 1 do 64 znaków spośród a-z, A-Z, 0-9, _, - | Wymuszane przy wdrażaniu |
| Rozmiar źródła | 20 MB | Wymuszane przy wdrażaniu |
| Czasy działania | deno (TypeScript lub JavaScript) i wasm | |
| Pamięć | 16 do 1024 MB, domyślnie 128 | permissions.memory_mb |
| Czas trwania | 1 do 300 s, domyślnie 30 | permissions.timeout_secs |
| Sieć wychodząca | Domyślnie otwarta | permissions.allow_net: jeśli nie jest pusta, osiągalne są tylko wymienione hosty |
Wartość spoza zakresu jest odrzucana za pomocą 400; nigdy nie jest zaciskany cicho. Prawdziwa odpowiedź na timeout_secs: 0: permissions.timeout_secs doit être compris entre 1 et 300 secondes.
Zmień uprawnienia bez ponownego wdrażania:
Zmieniają się tylko pola, które wysyłasz.
2. Połączenie
| Limit | Wartość | Źródło |
|---|---|---|
| Treść żądania | O 256 KiB | Zmierzone: 260 KB przeszło, 300 KB nie powiodło się przy 503 |
| Treść odpowiedzi | O 256 KiB | Zmierzone: pobrano 250 KB; 300 KB nie zwróciło niczego w ciągu 50 sekund |
| Stan pomiędzy połączeniami | Nic | Każde połączenie odbywa się w nowym, izolowanym procesie roboczym V8 |
| Regiony | Jeden | Brak wyboru regionu |
Wiadomość przechodząca przez platformę jest ograniczona do 1 MiB, a każdy bajt treści żądania jest liczony czterokrotnie, więc treść powyżej około 256 KiB jest odrzucana za pomocą 503 SERVICE_UNAVAILABLE. Zestaw SDK zgłasza to jako FunctionsRelayError, co wprowadza w błąd: ponowna próba nie może pomóc. Odpowiedź powyżej tego samego rozmiaru w ogóle nie pojawiła się w naszym teście. Przechowuj żądania i odpowiedzi poniżej 250 KB i wysyłaj większe dane za pośrednictwem magazynu.
3. Oceń i zaplanuj limity
Częstotliwość wywołań na adres IP klienta:
| Profil | Wartość |
|---|---|
| Pękać | 15 połączeń |
| Trwały | 1 połączenie na sekundę |
W prawdziwej serii 30 szybkich wywołań 15 zwróciło 200, a 15 zwróciło 429. 429 przenosi nagłówki x-ratelimit-* i retry-after, a zestaw SDK udostępnia opóźnienie jako error.retryAfter.
Miesięczne limity na plan, z tabeli planów platformy:
| Plan | Modły | Całkowity czas trwania |
|---|---|---|
| Bezpłatny | 100,000 | 6 000 000 ms (100 minut) |
| Zawodowiec | 1,000,000 | 60 000 000 ms (1000 min) |
| Zespół | 10,000,000 | 600 000 000 ms (10 000 min) |
| Przedsiębiorstwo | 100,000,000 | 6 000 000 000 ms (100 000 min) |
W planie Free limit jest twardy: połączenie przekraczające ten limit jest odrzucane z 403 QUOTA_EXCEEDED. W planach płatnych tabela przedstawia miesięczny limit, a to, co dzieje się poza nią, zależy od ustawienia nadwyżki w abonamencie. Połączenie jest liczone po odebraniu funkcji, niezależnie od jej statusu. Wywołanie, które zakończy się niepowodzeniem przed odpowiedzią funkcji, nie jest liczone. Zadania i uruchomienia cron również liczą się jako wywołania.
4. Zadania, cron i alerty
| Limit | Wartość |
|---|---|
| Próby pracy | domyślnie 3, ustawiane na zadanie za pomocą maxAttempts |
| Opóźnienie między próbami | 5 s, stałe |
| Zadania równoległe na instancję usługi | domyślnie 8 |
| Leasing bieżący | 450 s, po czym zadanie zostaje odzyskane |
| Gotowe prace zachowane | Domyślnie 14 dni |
listJobs strona | 1 do 500, domyślnie 50 |
| Harmonogram Crona | 5 lub 6 pól, UTC, bez aliasów |
| Kontrola alertu | Co 60 s |
Te wartości zadania to ustawienia usługi: JOB_MAX_RETRIES, JOB_RETRY_DELAY_SECS, WORKER_CONCURRENCY, JOB_RUNNING_LEASE_SECS i JOB_RETENTION_DAYS. Zapytaj operatora platformy o wartości zarządzanego wdrożenia.
5. Znane luki
- Brak dostępu do własnych logów funkcji. To, co funkcja zapisuje za pomocą
console.loglubconsole.error, pozostaje w dziennikach środowiska wykonawczego, które może odczytać tylko operator platformy.aura functions logspokazuje żądania (metoda, ścieżka, status, czas trwania, identyfikator żądania), a nie dane wyjściowe. W odpowiedzi prześlij potrzebne informacje lub wyślij je do własnej usługi rejestrowania. - Brak identyfikatora żądania w funkcji. Identyfikator wywołania nie jest przekazywany do funkcji.
- Brak wersji i wycofania. Wdrożenie zastępuje kod. Zachowaj poprzednią wersję w swoim repozytorium.
- Brak transmisji strumieniowej. Cała odpowiedź jest buforowana, zanim dotrze do zestawu SDK.
- Pusty
allow_netniczego nie ogranicza. Sieć jest domyślnie otwarta; wymień swoje hosty, aby ją ograniczyć. - Emulacja lokalna jest częściowa.
aura functions serveuruchamia Twój plik za pomocą Deno, ale nie odtwarza trasy platformy, nagłówków ani limitów.