Introduction
Les Edge Functions Netlify exécutent du code JavaScript ou TypeScript à la périphérie du réseau, près des utilisateurs. Cela réduit drastiquement la latence par rapport aux fonctions serverless classiques. En 2026, elles sont essentielles pour les applications performantes : personnalisation en temps réel, géolocalisation instantanée et gestion avancée des requêtes. Ce tutoriel vous apprend à les créer de zéro avec du code prêt à l'emploi.
Prérequis
- Compte Netlify gratuit
- Node.js 18 ou supérieur
- Connaissances basiques de JavaScript/TypeScript
- CLI Netlify installée (npm install -g netlify-cli)
Initialiser le projet
mkdir netlify-edge-demo
cd netlify-edge-demo
npm init -y
netlify initCette commande crée un nouveau dossier et initialise un site Netlify. Le dossier netlify/ sera automatiquement détecté pour les Edge Functions.
Créer une fonction basique
import type { Config, Context } from "@netlify/edge-functions";
export default async (request: Request, context: Context) => {
return new Response("Bonjour depuis l'Edge !");
};
export const config: Config = {
path: "/api/hello",
};Ce code définit une Edge Function simple qui répond sur /api/hello. Le fichier doit être placé dans netlify/edge-functions/ pour être déployé automatiquement.
Ajouter des en-têtes HTTP
import type { Config, Context } from "@netlify/edge-functions";
export default async (request: Request, context: Context) => {
const response = new Response("Hello with headers");
response.headers.set("X-Custom-Header", "Netlify-Edge");
return response;
};
export const config: Config = {
path: "/api/headers",
};Les en-têtes personnalisés permettent de contrôler le cache, la sécurité et les CORS directement depuis l'Edge pour des réponses optimisées.
Utiliser la géolocalisation
import type { Config, Context } from "@netlify/edge-functions";
export default async (request: Request, context: Context) => {
const country = context.geo?.country?.name || "Unknown";
return new Response(`Vous êtes au ${country}`);
};
export const config: Config = {
path: "/api/geo",
};L'objet context.geo fournit des données de localisation précises sans latence, idéal pour la personnalisation régionale.
Lire les variables d'environnement
import type { Config, Context } from "@netlify/edge-functions";
export default async (request: Request, context: Context) => {
const apiKey = Netlify.env.get("MY_API_KEY");
return new Response(`Clé : ${apiKey}`);
};
export const config: Config = {
path: "/api/env",
};Netlify.env.get permet d'accéder aux variables d'environnement de manière sécurisée directement dans les Edge Functions.
Bonnes pratiques
- Gardez les fonctions légères (< 1 Mo) pour des déploiements rapides
- Utilisez TypeScript pour la sécurité des types
- Testez localement avec netlify dev
- Limitez les dépendances externes
- Activez le cache quand c'est possible
Erreurs courantes à éviter
- Oublier d'exporter la config path
- Utiliser Node.js APIs non supportées à l'Edge
- Négliger la gestion des erreurs async
- Dépasser la limite de 50ms de temps CPU
Pour aller plus loin
Explorez les formations Learni pour maîtriser Netlify, les Edge Functions avancées et l'optimisation des performances web.