Serverless-Funktionen in TypeScript: AWS Lambda von Grund auf

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in Serverless-Funktionen mit TypeScript



Serverless Computing verändert grundlegend die Art und Weise, wie Anwendungen entwickelt und bereitgestellt werden. Anstatt Server zu verwalten, konzentrieren sich Entwickler ausschließlich auf das Schreiben von Code. AWS Lambda ist der führende Dienst zur Erstellung von Serverless-Funktionen, und TypeScript fügt die Zuverlässigkeit statischer Typisierung hinzu.



In diesem Artikel werden wir im Detail besprechen, wie man eine Serverless-Funktion mit TypeScript unter Verwendung von AWS Lambda erstellt, konfiguriert und bereitstellt. Sie erfahren, wie Sie effizienten Code schreiben, Ereignisse verarbeiten und Lambda in andere AWS-Dienste integrieren.



Was ist AWS Lambda und warum TypeScript?



Grundlagen von AWS Lambda



AWS Lambda ist ein Rechendienst, der Ihren Code als Reaktion auf Ereignisse ausführt und die Rechenressourcen automatisch verwaltet. Sie zahlen nur für die tatsächlich genutzte Ausführungszeit (auf 1 ms gerundet).



Wichtige Merkmale:

  • Ereignisgesteuerte Architektur — Die Funktion wird bei Eintreten eines Ereignisses ausgeführt (HTTP-Anfrage, Datei-Upload in S3, Änderung in DynamoDB)
  • Automatische Skalierung — von einer Anfrage bis zu Tausenden gleichzeitig
  • Unterstützung vieler Sprachen — Node.js (TypeScript), Python, Java, Go, .NET
  • Kostenloses Kontingent — 1 Million Anfragen pro Monat (im Rahmen des Free Tier)


Vorteile von TypeScript für Lambda



TypeScript ist eine Erweiterung von JavaScript, die statische Typisierung hinzufügt. Für Serverless-Funktionen bietet dies:

  • Weniger Laufzeitfehler — Der Compiler fängt Typenkonflikte vor dem Deployment ab
  • Bessere Code-Dokumentation — Typen dienen als Selbstdokumentation
  • Unterstützung moderner Funktionen — async/await, Dekorateure, Generics
  • Integration mit AWS SDK — Vollständige Typen für alle AWS-Dienste


Erstellung und Konfiguration einer Lambda-Funktion mit TypeScript



Schritt 1: Projekt initialisieren



Erstellen wir ein neues Projekt und installieren die erforderlichen Abhängigkeiten:



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


Schritt 2: TypeScript konfigurieren



Erstellen Sie die Datei 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"]}


Schritt 3: Lambda-Funktion schreiben



Erstellen Sie das Verzeichnis src und die Datei 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 { // Parsen des Anforderungstextes const body: UserData = JSON.parse(event.body || '{}');

// Datenvalidierung 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

Buchempfehlungen