Fonctions Serverless en TypeScript : AWS Lambda de zéro

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

Introduction aux fonctions Serverless en TypeScript



Le calcul serverless (sans serveur) change radicalement l'approche du développement et du déploiement d'applications. Au lieu de gérer des serveurs, les développeurs se concentrent uniquement sur l'écriture de code. AWS Lambda est le service leader pour créer des fonctions serverless, et TypeScript ajoute à cela la fiabilité du typage statique.



Dans cet article, nous allons détailler comment créer, configurer et déployer une fonction serverless en TypeScript avec AWS Lambda. Vous apprendrez à écrire du code efficace, à traiter des événements et à intégrer Lambda avec d'autres services AWS.



Qu'est-ce qu'AWS Lambda et pourquoi TypeScript ?



Les bases d'AWS Lambda



AWS Lambda est un service de calcul qui exécute votre code en réponse à des événements et gère automatiquement les ressources de calcul. Vous ne payez que pour le temps d'exécution réellement utilisé (arrondi à 1 ms).



Caractéristiques clés :

  • Architecture orientée événements — la fonction se déclenche lors d'un événement (requête HTTP, téléchargement de fichier dans S3, modification dans DynamoDB)
  • Mise à l'échelle automatique — d'une seule requête à des milliers simultanément
  • Prise en charge de multiples langages — Node.js (TypeScript), Python, Java, Go, .NET
  • Limite gratuite — 1 million de requêtes par mois (dans le cadre du Free Tier)


Avantages de TypeScript pour Lambda



TypeScript est une surcouche de JavaScript qui ajoute le typage statique. Pour les fonctions serverless, cela apporte :

  • Moins d'erreurs à l'exécution — le compilateur détecte les incohérences de types avant le déploiement
  • Meilleure documentation du code — les types servent d'auto-documentation
  • Prise en charge des fonctionnalités modernes — async/await, décorateurs, génériques
  • Intégration avec AWS SDK — types complets pour tous les services AWS


Création et configuration d'une fonction Lambda en TypeScript



Étape 1 : Initialisation du projet



Créons un nouveau projet et installons les dépendances nécessaires :



mkdir my-lambda-functioncd my-lambda-functionnpm init -ynpm install --save-dev typescript @types/node aws-sdknpm install --save-dev @types/aws-lambda


Étape 2 : Configuration de TypeScript



Créez le fichier tsconfig.json :



{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "lib": ["ES2020"],    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "skipLibCheck": true,    "forceConsistentCasingInFileNames": true,    "resolveJsonModule": true,    "declaration": true  },  "include": ["src/**/*"],  "exclude": ["node_modules", "dist"]}


Étape 3 : Écriture de la fonction Lambda



Créez le répertoire src et le fichier src/handler.ts :



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

interface UserData { userId: string; name: string; email: string;}

export const handler = async ( event: APIGatewayProxyEvent, context: Context): Promise<APIGatewayProxyResult> => { console.log('Event:', JSON.stringify(event, null, 2)); console.log('Context:', context);

try { // Parsing du corps de la requête const body: UserData = JSON.parse(event.body || '{}');

// Validation des données if (!body.userId || !body.name || !body.email) { return { statusCode: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' }, body: JSON.stringify({ message: 'Missing required fields: userId, name, email' }) }; }

Blogs

Book Recommendations