Limiti e quote
I numeri necessari prima di progettare una funzione e le lacune note della piattaforma attuale.
1. Una funzione
| Limite | Valore | Da dove viene |
|---|---|---|
| Nome | Da 1 a 64 caratteri tra a-z, A-Z, 0-9, _, - | Applicato al momento della distribuzione |
| Dimensione della fonte | 20 MB | Applicato al momento della distribuzione |
| Tempi di esecuzione | deno (TypeScript o JavaScript) e wasm | |
| Memoria | Da 16 a 1024 MB, predefinito 128 | permissions.memory_mb |
| Durata | Da 1 a 300 s, predefinito 30 | permissions.timeout_secs |
| Rete in uscita | Aperta per impostazione predefinita | permissions.allow_net: se non è vuoto, solo gli host elencati sono raggiungibili |
Un valore fuori dai limiti viene rifiutato con 400; non viene mai bloccato in silenzio. Risposta reale per timeout_secs: 0: permissions.timeout_secs doit être compris entre 1 et 300 secondes.
Modifica le autorizzazioni senza ridistribuire:
Cambiano solo i campi che invii.
2. Una chiamata
| Limite | Valore | Fonte |
|---|---|---|
| Richiedi corpo | Informazioni su 256 KiB | Misurato: 260 KB superati, 300 KB non riusciti con 503 |
| Corpo della risposta | Informazioni su 256 KiB | Misurato: 250 KB superati; 300 KB non hanno restituito nulla entro 50 s |
| Stato tra le chiamate | Nessuno | Ogni chiamata viene eseguita in un nuovo lavoratore V8 isolato |
| Regioni | Uno | Nessuna selezione della regione |
Il messaggio che attraversa la piattaforma è limitato a 1 MiB e ogni byte del corpo della richiesta conta quattro volte, quindi un corpo superiore a circa 256 KiB viene rifiutato con 503 SERVICE_UNAVAILABLE. L'SDK lo segnala come FunctionsRelayError, il che è fuorviante: riprovare non può essere d'aiuto. Una risposta superiore alla stessa dimensione non si è verificata affatto nel nostro test. Mantieni richieste e risposte al di sotto di 250 KB e invia dati più grandi tramite Archiviazione.
3. Valuta e pianifica le quote
Tasso di chiamate, per IP client:
| Profilo | Valore |
|---|---|
| Scoppio | 15 chiamate |
| Sostenuto | 1 chiamata al secondo |
In una serie reale di 30 chiamate rapide, 15 hanno restituito 200 e 15 hanno restituito 429. Un 429 trasporta le intestazioni x-ratelimit-* e retry-after e l'SDK espone il ritardo come error.retryAfter.
Quote mensili per piano, dalla tabella dei piani della piattaforma:
| Piano | Invocazioni | Durata totale |
|---|---|---|
| Gratuito | 100,000 | 6.000.000 di ms (100 minuti) |
| Pro | 1,000,000 | 60.000.000 di ms (1.000 minuti) |
| Squadra | 10,000,000 | 600.000.000 ms (10.000 minuti) |
| Impresa | 100,000,000 | 6.000.000.000 di ms (100.000 minuti) |
Nel piano Free il limite è rigido: una chiamata oltre viene rifiutata con 403 QUOTA_EXCEEDED. Sui piani a pagamento la tabella rappresenta l'indennità mensile e ciò che accade oltre dipende dall'impostazione del surplus dell'abbonamento. Una chiamata viene conteggiata una volta che la tua funzione ha risposto, qualunque sia il suo stato. Una chiamata che fallisce prima che la funzione risponda non viene conteggiata. Anche i lavori e i licenziamenti di cron contano come invocazioni.
4. Lavori, cron e avvisi
| Limite | Valore |
|---|---|
| Tentativi di lavoro | 3 per impostazione predefinita, impostato per lavoro con maxAttempts |
| Ritardo tra i tentativi | 5 s, fisso |
| Lavori paralleli per istanza del servizio | 8 per impostazione predefinita |
| Contratto di locazione in corso | 450 s, poi il lavoro viene recuperato |
| Lavori finiti mantenuti | 14 giorni per impostazione predefinita |
listJobs pagina | Da 1 a 500, predefinito 50 |
| Programma Cron | 5 o 6 campi, UTC, nessun alias |
| Controllo degli avvisi | Ogni 60 s |
Questi valori del processo sono impostazioni del servizio: JOB_MAX_RETRIES, JOB_RETRY_DELAY_SECS, WORKER_CONCURRENCY, JOB_RUNNING_LEASE_SECS e JOB_RETENTION_DAYS. Chiedi al tuo operatore della piattaforma i valori di una distribuzione gestita.
5. Lacune note
- Nessun accesso ai log di una funzione. Ciò che una funzione scrive con
console.logoconsole.errorrimane nei log del runtime, che solo l'operatore della piattaforma può leggere.aura functions logsmostra le richieste (metodo, percorso, stato, durata, ID richiesta), non quell'output. Restituisci le informazioni necessarie nella risposta o inviale al tuo servizio di registrazione. - Nessun ID richiesta all'interno della funzione. L'identificatore di una chiamata non viene inoltrato alla funzione.
- Nessuna versione o rollback. La distribuzione sostituisce il codice. Conserva la versione precedente nel tuo repository.
- Nessuno streaming. L'intera risposta viene memorizzata nel buffer prima di raggiungere l'SDK.
- Un
allow_netvuoto non limita nulla. La rete è aperta per impostazione predefinita; elenca i tuoi host per limitarla. - L'emulazione locale è parziale.
aura functions serveesegue il file con Deno ma non riproduce il percorso della piattaforma, le intestazioni o i limiti.