Fonctions edge et IA : les limites cachées à connaître
Déployez votre IA sans mauvaise surprise : découvrez les limites des fonctions edge et comment les contourner pour réussir votre projet.
Quand vous déployez un modèle d’IA ou un agent intelligent à proximité de vos utilisateurs, vous entendez souvent parler de « fonctions edge ». C’est séduisant : exécuter du code au plus près de la requête, réduire la latence, scaler sans gérer de serveur. Mais derrière cette promesse se cache une réalité technique que beaucoup découvrent trop tard : les limites. Et quand votre IA dépend de ces fonctions, ces limites deviennent vos limites.
Pourquoi les limites des fonctions edge concernent directement votre IA
Une fonction edge n’est pas un serveur classique. C’est un environnement d’exécution contraint, pensé pour des traitements courts et légers. Si vous y faites tourner un appel à un modèle de langage, un pré-traitement de données ou une logique d’agent, chaque contrainte devient un point de friction potentiel. Ignorer ces limites, c’est risquer des timeouts en production, des réponses tronquées ou des coûts imprévus.
Les limites de temps : le vrai plafond de votre IA
Le temps est la ressource la plus surveillée. Sur la plateforme hébergée de Supabase, une fonction edge dispose d’une durée de vie maximale de 150 secondes en plan gratuit et 400 secondes en plan payant . Cette durée couvre l’activité du worker, pas seulement une requête. Autrement dit, un même worker peut enchaîner plusieurs appels avant d’être recyclé.
Mais attention : le temps CPU réel par requête est plafonné à 2 secondes . Le temps passé à attendre une réponse d’API, comme un appel à un LLM, ne compte pas dans ce CPU. En revanche, tout calcul intensif, parsing lourd ou boucle de raisonnement local, oui. Pour une IA, cela signifie une chose simple : déléguez le calcul lourd ailleurs, et gardez la fonction edge pour l’orchestration.
Le piège du timeout d’inactivité
Si votre fonction n’envoie aucune réponse avant 150 secondes, la plateforme renvoie une erreur 504. Pour un agent IA qui attend un modèle lent ou un flux de tokens, ce délai peut sembler confortable. Mais si vous implémentez du streaming ou des traitements par lots, surveillez ce seuil comme le lait sur le feu.
Mémoire, taille et nombre de fonctions : les plafonds structurels
Chaque fonction edge dispose de 256 Mo de mémoire maximum . C’est largement suffisant pour orchestrer des appels à des modèles distants, mais insuffisant pour embarquer un modèle local un tant soit peu sérieux. La taille du bundle compte aussi : 20 Mo si vous buildez localement via la CLI, seulement 5 Mo si vous passez par l’API ou le dashboard.
Le nombre de fonctions par projet varie selon votre plan :
- Gratuit : 100 fonctions
- Pro : 1 000 fonctions
- Team : 2 000 fonctions
- Enterprise : illimité
Si vous découpez votre pipeline IA en micro-fonctions spécialisées, cette limite peut vite devenir un mur. Anticipez votre architecture avant d’exploser le compteur.
Secrets et sécurité : là où dorment vos clés d’API
Vos clés d’API OpenAI, Anthropic ou autre vivent dans les secrets de la plateforme. Les limites sont claires :
100 secrets maximum par projet
, noms jusqu’à 256 caractères, taille de valeur plafonnée à 48 Ko. Et une règle à ne jamais oublier : un nom de secret ne peut pas commencer par le préfixe
SUPABASE_
, réservé par la plateforme.
Pour un projet IA multi-fournisseurs, ces 100 secrets peuvent sembler beaucoup. Mais entre les clés de modèles, les webhooks, les tokens d’intégration et les identifiants de bases vectorielles, on les atteint plus vite qu’on ne le croit.
Les restrictions qui surprennent les développeurs d’IA
Certaines limites ne se voient qu’au moment où elles vous frappent. En voici quelques-unes à connaître avant de vous lancer :
- Les connexions sortantes vers les ports 25 et 587 sont bloquées (adieu l’envoi direct d’emails depuis une fonction).
- Le contenu HTML n’est servi qu’avec un domaine personnalisé, sinon il est réécrit en texte brut.
- Les API Web Worker et Node vm ne sont pas disponibles.
- Les fichiers statiques ne peuvent pas être déployés via l’API : il faut passer par Docker en CLI.
-
Les bibliothèques Node qui exigent du multithreading, comme
libvipsousharp, ne fonctionnent pas.
Pour un projet IA, cela signifie concrètement : pas de traitement d’image lourd côté edge, pas d’exécution de code généré dans un sandbox Node, et une gestion fine des réponses HTTP.
Comment concevoir une IA compatible avec ces limites
La bonne nouvelle, c’est que ces contraintes ne sont pas des obstacles, mais des guides de conception. Elles vous poussent vers une architecture plus propre :
- Séparez l’orchestration (edge) du calcul lourd (serveur ou service dédié).
- Gardez vos fonctions courtes, idempotentes et focalisées sur une tâche.
- Utilisez le streaming pour éviter les timeouts d’inactivité.
- Externalisez les modèles et les gros traitements derrière des API.
- Surveillez les logs : la limite de 100 événements par 10 secondes peut masquer des erreurs critiques.
Pourquoi c’est important
Parce que la performance de votre IA ne dépend pas seulement de la qualité du modèle, mais aussi de l’environnement qui l’exécute. Connaître ces limites, c’est éviter les mauvaises surprises en production, réduire les coûts et livrer une expérience utilisateur fluide. C’est aussi une question de crédibilité : un agent qui tombe en timeout perd toute confiance.
Conclusion
Les fonctions edge sont un formidable terrain de jeu pour déployer de l’IA réactive et scalable. À condition de respecter leurs règles. Voyez ces limites non pas comme des freins, mais comme un cadre qui vous force à concevoir plus intelligemment. Votre IA n’en sera que plus robuste, plus rapide et plus fiable.
Points clés à retenir
- Une fonction edge a une durée de vie maximale (150 s gratuit, 400 s payant) et un temps CPU de 2 secondes par requête.
- La mémoire est plafonnée à 256 Mo et le bundle à 20 Mo en CLI, 5 Mo via l’API.
- Certaines bibliothèques et ports réseau sont interdits : adaptez votre architecture IA en conséquence.
-
Les secrets sont limités à 100 par projet, avec un préfixe
SUPABASE_réservé. - Bien conçue, une fonction edge devient un orchestr