Limites et quotas
Les chiffres dont vous avez besoin avant de concevoir une fonction et les lacunes connues de la plateforme actuelle.
1. Une fonction
| Limite | Valeur | D'où ça vient |
|---|---|---|
| Nom | 1 à 64 caractères parmi a-z, A-Z, 0-9, _, - | Appliqué lors du déploiement |
| Taille de la source | 20 Mo | Appliqué lors du déploiement |
| Durées d'exécution | deno (TypeScript ou JavaScript) et wasm | |
| Mémoire | 16 à 1 024 Mo, 128 par défaut | permissions.memory_mb |
| Durée | 1 à 300 s, par défaut 30 | permissions.timeout_secs |
| Réseau sortant | Ouvert par défaut | permissions.allow_net : s’il n’est pas vide, seuls les hôtes listés sont joignables |
Une valeur hors limites est refusée avec 400; il n'est jamais serré silencieusement. Vraie réponse pour timeout_secs: 0: permissions.timeout_secs doit être compris entre 1 et 300 secondes.
Modifiez les autorisations sans redéployer :
Seuls les champs que vous envoyez changent.
2. Un appel
| Limite | Valeur | Source |
|---|---|---|
| Corps de la demande | À propos de 256 Ko | Mesuré : 260 Ko réussis, 300 Ko échoués avec 503 |
| Corps de réponse | À propos de 256 Ko | Mesuré : 250 Ko passés ; 300 Ko n'ont rien renvoyé en 50 s |
| État entre les appels | Aucun | Chaque appel s'exécute dans un nouveau travailleur V8 isolé |
| Régions | Un | Aucune sélection de région |
Le message qui traverse la plateforme est limité à 1 Mio et chaque octet d'un corps de requête compte quatre fois, donc un corps supérieur à environ 256 Kio est rejeté avec 503 SERVICE_UNAVAILABLE. Le SDK le signale comme FunctionsRelayError, ce qui est trompeur : réessayer ne peut pas aider. Une réponse supérieure à la même taille n’est pas revenue du tout lors de notre test. Conservez les requêtes et les réponses en dessous de 250 Ko et envoyez des données plus volumineuses via le stockage.
3. Tarifer et planifier les quotas
Taux d'appel, par IP client :
| Profil | Valeur |
|---|---|
| Éclater | 15 appels |
| Soutenu | 1 appel par seconde |
Au cours d'une série réelle de 30 appels rapides, 15 ont renvoyé 200 et 15 ont renvoyé 429. Un 429 comporte les en-têtes x-ratelimit-* et retry-after, et le SDK expose le délai sous la forme error.retryAfter.
Quotas mensuels par plan, issus du tableau des plans de la plateforme :
| Planifier | Invocations | Durée totale |
|---|---|---|
| Gratuit | 100,000 | 6 000 000 ms (100 minutes) |
| Pro | 1,000,000 | 60 000 000 ms (1 000 minutes) |
| Équipe | 10,000,000 | 600 000 000 ms (10 000 minutes) |
| Entreprise | 100,000,000 | 6 000 000 000 de ms (100 000 minutes) |
Sur le forfait Free la limite est stricte : un appel au-delà est refusé avec 403 QUOTA_EXCEEDED. Sur les forfaits payants, le tableau correspond à l'allocation mensuelle, et ce qui se passe au-delà dépend du paramètre de dépassement de votre abonnement. Un appel est comptabilisé une fois que votre fonction a répondu, quel que soit son statut. Un appel qui échoue avant que la fonction ne réponde n'est pas compté. Les tâches et les licenciements cron comptent également comme des invocations.
4. Travaux, cron et alertes
| Limite | Valeur |
|---|---|
| Tentatives de travail | 3 par défaut, défini par tâche avec maxAttempts |
| Délai entre les tentatives | 5 s, fixe |
| Travaux parallèles par instance de service | 8 par défaut |
| Bail en cours | 450 s, puis le travail est repris |
| Travaux finis conservés | 14 jours par défaut |
Page listJobs | 1 à 500, par défaut 50 |
| Calendrier Cron | 5 ou 6 champs, UTC, pas d'alias |
| Vérification des alertes | Toutes les 60 s |
Ces valeurs de tâche sont des paramètres de service : JOB_MAX_RETRIES, JOB_RETRY_DELAY_SECS, WORKER_CONCURRENCY, JOB_RUNNING_LEASE_SECS et JOB_RETENTION_DAYS. Demandez à votre opérateur de plateforme les valeurs d’un déploiement géré.
5. Lacunes connues
- Pas d'accès aux propres journaux d'une fonction. Ce qu'une fonction écrit avec
console.logouconsole.errorreste dans les journaux du runtime, que seul l'opérateur de la plateforme peut lire.aura functions logsaffiche les requêtes (méthode, chemin, statut, durée, identifiant de la requête), pas cette sortie. Renvoyez les informations dont vous avez besoin dans la réponse ou envoyez-les à votre propre service de journalisation. - Aucun identifiant de requête dans la fonction. L'identifiant d'un appel n'est pas transmis à la fonction.
- Aucune version ni restauration. Le déploiement remplace le code. Conservez la version précédente dans votre référentiel.
- Pas de diffusion. L'intégralité de la réponse est mise en mémoire tampon avant d'atteindre le SDK.
- Un
allow_netvide ne restreint rien. Le réseau est ouvert par défaut ; listez vos hôtes pour le restreindre. - L'émulation locale est partielle.
aura functions serveexécute votre fichier avec Deno mais ne reproduit pas l'itinéraire, les en-têtes ou les limites de la plateforme.