Serverless en TypeScript : AWS Lambda et alternatives pour le backend

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Serverless en TypeScript : votre backend sans serveurs (et sans maux de tête)



Bonjour, collègue ! Si tu as déjà configuré un VPS, lutté avec nginx, surveillé la charge CPU et redémarré PostgreSQL en panne à trois heures du matin — cet article est pour toi. Le monde évolue vers le serverless (calcul sans serveur), et TypeScript est le langage idéal pour sauter dans ce train en marche.



Voyons ce que sont les fonctions serverless, comment les écrire en TypeScript, et quelles plateformes (AWS Lambda, Google Cloud Functions, Yandex Cloud Functions) choisir pour votre projet. Spoiler : il y aura du code, il y aura des exemples, mais il n'y aura pas de serveurs.



Qu'est-ce que le Serverless ? (Spoiler : les serveurs existent quand même)



Le nom « serverless » est un coup de marketing. Les serveurs existent bien sûr, mais tu n'en sais rien et tu ne veux rien en savoir. Tu écris simplement une fonction (généralement en TypeScript), tu la télécharges dans le cloud, et elle s'exécute à la demande. Tu ne paies que pour le temps d'exécution — ni pour un serveur inactif, ni pour la mise à l'échelle.



Cela s'appelle FaaS (Function as a Service). Les principaux avantages :



  • Mise à l'échelle automatique — de 0 à 10 000 requêtes par seconde en quelques secondes.
  • Économies — vous payez pour les millisecondes d'exécution, pas pour la location d'une machine.
  • Moins de DevOps — le cloud met à jour lui-même l'environnement d'exécution, corrige les vulnérabilités.
  • TypeScript prêt à l'emploi — tous les grands fournisseurs supportent Node.js, donc TypeScript.


Mais il y a aussi des inconvénients : démarrage à froid (les premières millisecondes de chargement), limite de temps d'exécution (généralement 15 minutes), difficultés de débogage.



Écrivons notre première fonction Serverless en TypeScript pour AWS Lambda



AWS Lambda est le roi du serverless. Commençons par lui. Installez aws-sdk et @types/aws-lambda pour TypeScript.



npm init -ynpm install typescript @types/node aws-lambda --save-devnpx tsc --init


Créez le fichier handler.ts :



import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';

export const handler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => { const name = event.queryStringParameters?.name || 'Invité'; return { statusCode: 200, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: `Bonjour, ${name}! Ceci est une fonction serverless en TypeScript.`, timestamp: new Date().toISOString(), }), };};


Compilez le projet :



npx tsczip -r function.zip .


Téléchargez l'archive dans AWS Lambda via la console, spécifiez le runtime Node.js 20.x, et le point d'entrée — handler.handler.



Terminé ! Vous avez maintenant une API HTTP qui ne nécessite pas de serveur. Vous pouvez la connecter à API Gateway et l'utiliser.



Google Cloud Functions : l'alternative TypeScript de Google



Si vous préférez l'écosystème Google (Firebase, BigQuery, GCP), alors Google Cloud Functions est votre choix. La syntaxe ressemble à AWS, mais il y a des nuances.



Installez l'outil :



npm install -g @google-cloud/functions-framework


Créez index.ts :



import { Request, Response } from 'express';

export const helloWorld = (req: Request, res: Response) => { const name = req.query.name || 'Monde'; res.json({ message: `Bonjour, ${name}! Ceci est Google Cloud Functions en TypeScript.`, timestamp: new Date().toISOString(), });};


Pour les tests locaux :



npx @google-cloud/functions-framework --target=helloWorld


Déploiement en une commande :



gcloud functions deploy hello-world \  --runtime nodejs20 \  --trigger-http \  --allow-unauthenticated \  --entry-point hell                

Blogs

Book Recommendations