Fonctions Serverless en TypeScript : AWS Lambda de A à Z

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 avec AWS Lambda

\n\n

L'architecture serverless est devenue la norme du développement cloud moderne. AWS Lambda permet d'exécuter du code sans gérer de serveurs, tandis que TypeScript apporte un typage strict et une facilité de développement. Dans cet article, nous allons détailler l'ensemble du processus : de la création de votre première fonction au déploiement en production. Vous apprendrez à écrire des fonctions serverless efficaces en TypeScript, à travailler avec des déclencheurs et à gérer les erreurs.

\n\n

Les fonctions serverless sont idéales pour les microservices, le traitement d'événements, les webhooks et les tâches en arrière-plan. TypeScript rend le code plus sûr et plus prévisible, ce qui est essentiel pour les solutions de production.

\n\n

1. Configuration de l'environnement pour AWS Lambda en TypeScript

\n\n

Avant de commencer, installez les outils nécessaires. Vous aurez besoin de Node.js (version 18+), npm et AWS CLI.

\n\n

1.1. Installation des dépendances

\n\n
npm init -y\nnpm install -D typescript @types/node @aws-sdk/client-lambda\nnpm install aws-lambda @types/aws-lambda\n
\n\n

1.2. Configuration de TypeScript

\n\n

Créez un fichier tsconfig.json avec les paramètres pour Lambda :

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

1.3. Installation d'AWS CLI

\n\n

Téléchargez et configurez AWS CLI à partir de la source officielle. Après l'installation, exécutez :

\n\n
aws configure\n
\n\n

Saisissez votre Access Key ID, Secret Access Key, région (par exemple, us-east-1) et le format de sortie (json).

\n\n

2. Création de votre première fonction serverless en TypeScript

\n\n

La structure du projet doit ressembler à ceci :

\n\n
my-lambda-project/\n├── src/\n│   └── handler.ts\n├── dist/\n├── tsconfig.json\n├── package.json\n└── .gitignore\n
\n\n

2.1. Gestionnaire Lambda de base

\n\n

Créez un fichier src/handler.ts avec une fonction simple :

\n\n
import { Context, APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';\n\ninterface HelloResponse {\n  message: string;\n  timestamp: string;\n  eventType: string;\n}\n\nexport const handler = async (\n  event: APIGatewayProxyEvent,\n  context: Context\n): Promise<APIGatewayProxyResult> => {\n  console.log('Event:', JSON.stringify(event, null, 2));\n  console.log('Context:', context);\n\n  const response: HelloResponse = {\n    message: 'Bonjour depuis AWS Lambda avec TypeScript !',\n    timestamp: new Date().toISOString(),\n    eventType: event.httpMethod || 'INCONNU'\n  };\n\n  return {\n    statusCode: 200,\n    headers: {\n      'Content-Type': 'application/json',\n      'Access-Control-Allow-Origin': '*'\n    },\n    body: JSON.stringify(response)\n  };\n};\n
\n\n

2.2. Compilation TypeScript

\n\n

Ajoutez des scripts dans package.json :

\n\n
"scripts": {\n  "build": "tsc",\n  "watch": "tsc --watch",\n  "clean": "rm -rf dist"\n}\n
\n\n

Exécutez la compilation :

\n\n
npm run build\n
\n\n

Vérifiez que le fichier handler.js est apparu dans le dossier dist.

\n\n

3. Déploiement de la fonction Lambda sur AWS

\n\n

Il existe plusieurs méthodes de déploiement. Examinons la plus simple : via AWS CLI.

\n\n

3.1. Empaquetage de la fonction

\n\n

Créez une archive ZIP avec le code :

\n\n
cd dist\nzip -r ../function.zip .\ncd ..\n
\n\n

3.2. Création de la fonction Lambda

\n\n

Exécutez la commande AWS CLI :

\n\n
aws lambda create-function \\\n  --function-name hello-typescript \\\n  --runtime nodejs18.x \\\n  --role arn:aws:iam::Y                

Blogs

Book Recommendations