Introduction au monde Serverless et AWS Lambda
Le développement cloud moderne se tourne de plus en plus vers l'architecture serverless (sans serveur). Malgré son nom, les serveurs ne disparaissent pas — vous cessez simplement d'y penser. AWS Lambda est un service d'Amazon qui permet d'exécuter du code sans provisionner ni gérer de serveurs. Vous payez uniquement pour le temps d'exécution réel et le nombre de requêtes.
Dans cet article, nous allons explorer AWS Lambda avec JavaScript (Node.js) des bases jusqu'aux exemples concrets. Vous apprendrez à créer, configurer et déployer des fonctions, et découvrirez les meilleures pratiques.
Bases d'AWS Lambda pour Node.js
Qu'est-ce qu'une fonction Lambda ?
Une fonction Lambda est un bloc de code isolé qui s'exécute en réponse à un événement (déclencheur). La fonction reçoit en entrée event (données de l'événement) et context (informations sur l'environnement d'exécution) et retourne un résultat.
Structure d'une fonction Lambda simple
Une fonction de base en Node.js ressemble à ceci :
exports.handler = async (event, context) => { const name = event.queryStringParameters?.name || 'Invité'; const response = { statusCode: 200, body: JSON.stringify({ message: `Bonjour, ${name}!` }), }; return response;};- exports.handler — point d'entrée obligatoire.
- event — contient les données transmises par le déclencheur (ex : requête HTTP depuis API Gateway).
- context — fournit des méthodes pour gérer l'exécution (temps, logger, identifiant).
- La fonction doit être async ou retourner une Promise.
Déclencheurs (sources d'appel)
Lambda n'existe pas dans le vide. Elle peut être déclenchée par :
- API Gateway — requêtes HTTP (REST/WebSocket).
- S3 — téléchargement/suppression de fichiers.
- DynamoDB Streams — modifications dans la base de données.
- SQS/SNS — files d'attente de messages.
- CloudWatch Events — planification (cron).
Création et déploiement d'une fonction Lambda
Étape 1 : Configuration de l'environnement
Vous aurez besoin de :
- Un compte AWS.
- AWS CLI installé et des credentials configurés.
- Node.js (version 18 ou 20, recommandé par AWS).
Étape 2 : Création de la fonction via la console
C'est la méthode la plus rapide pour les débutants :
- Allez dans AWS Management Console → Lambda.
- Cliquez sur "Créer une fonction" → "À partir de zéro".
- Indiquez un nom, choisissez le runtime Node.js 20.x.
- Cliquez sur "Créer".
Dans l'éditeur de code, collez notre exemple ci-dessus et cliquez sur "Deploy". C'est fait !
Étape 3 : Déploiement avec AWS CLI
Pour automatiser le déploiement, utilisez la commande :
zip -r function.zip index.js node_modulesaws lambda update-function-code \ --function-name my-first-lambda \ --zip-file fileb://function.zipScénarios avancés et meilleures pratiques
Travailler avec les variables d'environnement
Ne stockez jamais de secrets dans le code. Utilisez process.env :
const dbPassword = process.env.DB_PASSWORD;const tableName = process.env.TABLE_NAME;Les variables sont définies dans les paramètres de la fonction (Configuration → Variables d'environnement).
Gestion des erreurs et journalisation
Utilisez le logger intégré console.log — il envoie automatiquement les logs dans CloudWatch :
exports.handler = async (event) => { console.log('Événement reçu :', JSON.stringify(event, null, 2)); try { // votre code } catch (error) { console.error('Erreur :', error.message); throw e