Limieten en quota
De cijfers die je nodig hebt voordat je een functie ontwerpt, en de bekende hiaten van het huidige platform.
1. Een functie
| Limiet | Waarde | Waar het vandaan komt |
|---|---|---|
| Naam | 1 tot 64 tekens tussen a-z, A-Z, 0-9, _, - | Afgedwongen bij inzet |
| Brongrootte | 20MB | Afgedwongen bij inzet |
| Looptijden | deno (TypeScript of JavaScript) en wasm | |
| Geheugen | 16 tot 1024 MB, standaard 128 | permissions.memory_mb |
| Duur | 1 tot 300 s, standaard 30 | permissions.timeout_secs |
| Uitgaand netwerk | Standaard open | permissions.allow_net: als het niet leeg is, zijn alleen de genoemde hosts bereikbaar |
Een waarde buiten de grenzen wordt geweigerd met 400; het wordt nooit stil vastgeklemd. Echt antwoord voor timeout_secs: 0: permissions.timeout_secs doit être compris entre 1 et 300 secondes.
Wijzig machtigingen zonder opnieuw te implementeren:
Alleen de velden die u verzendt, veranderen.
2. Een telefoontje
| Limiet | Waarde | Bron |
|---|---|---|
| Lichaam aanvragen | Over 256 KiB | Gemeten: 260 KB geslaagd, 300 KB mislukt met 503 |
| Reactie lichaam | Over 256 KiB | Gemeten: 250 KB geslaagd; 300 KB heeft binnen 50 seconden niets geretourneerd |
| Staat tussen oproepen | Geen | Elke oproep wordt uitgevoerd in een nieuwe geïsoleerde V8-werker |
| Regio's | Eén | Geen regioselectie |
Het bericht dat het platform passeert, is beperkt tot 1 MiB en elke byte van een verzoektekst telt vier keer, dus een tekst groter dan ongeveer 256 KiB wordt afgewezen met 503 SERVICE_UNAVAILABLE. De SDK rapporteert het als een FunctionsRelayError, wat misleidend is: opnieuw proberen kan niet helpen. Een reactie van meer dan dezelfde omvang kwam in onze test helemaal niet terug. Houd verzoeken en antwoorden kleiner dan 250 KB en verzend grotere gegevens via opslag.
3. Beoordeel en plan quota
Aanroeppercentage, per client-IP:
| Profiel | Waarde |
|---|---|
| Burst | 15 oproepen |
| Aanhoudend | 1 oproep per seconde |
In een echte reeks van 30 snelle oproepen retourneerden er 15 200 en 15 retourneerden 429. Een 429 bevat x-ratelimit-* en retry-after headers, en de SDK geeft de vertraging weer als error.retryAfter.
Maandelijkse quota per plan, uit de plantabel van het platform:
| Plannen | Aanroepingen | Totale duur |
|---|---|---|
| Gratis | 100,000 | 6.000.000 ms (100 min) |
| Pro | 1,000,000 | 60.000.000 ms (1.000 min) |
| Team | 10,000,000 | 600.000.000 ms (10.000 min) |
| Onderneming | 100,000,000 | 6.000.000.000 ms (100.000 min) |
Bij het gratis abonnement is de limiet moeilijk: een oproep daarbuiten wordt geweigerd met 403 QUOTA_EXCEEDED. Bij betaalde abonnementen is de tabel het maandelijkse bedrag, en wat er daarna gebeurt, hangt af van de instelling voor overschrijding van uw abonnement. Een oproep wordt geteld zodra uw functie heeft geantwoord, ongeacht de status ervan. Een oproep die mislukt voordat de functie antwoordt, wordt niet meegeteld. Jobs en cron-ontslagen tellen ook als aanroepingen.
4. Taken, cron en waarschuwingen
| Limiet | Waarde |
|---|---|
| Pogingen tot werk | Standaard 3, per taak ingesteld met maxAttempts |
| Vertraging tussen pogingen | 5 sec., vast |
| Parallelle taken per service-exemplaar | 8 standaard |
| Lopende lease | 450 s, daarna wordt de taak teruggevorderd |
| Afgewerkte opdrachten bewaard | Standaard 14 dagen |
listJobs pagina | 1 tot 500, standaard 50 |
| Cron-schema | 5 of 6 velden, UTC, geen aliassen |
| Waarschuwingscontrole | Elke 60 sec |
Deze taakwaarden zijn service-instellingen: JOB_MAX_RETRIES, JOB_RETRY_DELAY_SECS, WORKER_CONCURRENCY, JOB_RUNNING_LEASE_SECS en JOB_RETENTION_DAYS. Vraag uw platformoperator naar de waarden van een beheerde implementatie.
5. Bekende hiaten
- Geen toegang tot de eigen logbestanden van een functie. Wat een functie schrijft met
console.logofconsole.errorblijft in de runtimelogboeken, die alleen de platformoperator kan lezen.aura functions logstoont verzoeken (methode, pad, status, duur, verzoek-ID), niet die uitvoer. Stuur de informatie die u nodig heeft terug in het antwoord, of stuur het naar uw eigen logservice. - Geen verzoek-ID binnen de functie. De identificatie van een oproep wordt niet doorgestuurd naar de functie.
- Geen versies of terugdraaien. Implementeren vervangt de code. Bewaar de vorige versie in uw repository.
- Geen streaming. Het hele antwoord wordt gebufferd voordat het de SDK bereikt.
- Een lege
allow_netbeperkt niets. Het netwerk staat standaard open; noem uw hosts om het te beperken. - Lokale emulatie is gedeeltelijk.
aura functions servevoert uw bestand uit met Deno maar reproduceert niet de platformroute, headers of limieten.