Serverless-Funktionen in TypeScript: AWS Lambda von A bis Z

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 in TypeScript mit AWS Lambda

\n\n

Die Serverless-Architektur ist zum Standard der modernen Cloud-Entwicklung geworden. AWS Lambda ermöglicht die Ausführung von Code ohne Serververwaltung, und TypeScript fügt strenge Typisierung und Entwicklungskomfort hinzu. In diesem Artikel werden wir den gesamten Prozess durchgehen: von der Erstellung der ersten Funktion bis zum Deployment in die Produktion. Sie erfahren, wie Sie effiziente Serverless-Funktionen in TypeScript schreiben, mit Triggern arbeiten und Fehler behandeln.

\n\n

Serverless-Funktionen eignen sich ideal für Microservices, Ereignisverarbeitung, Webhooks und Hintergrundaufgaben. TypeScript macht den Code sicherer und vorhersagbarer, was für Produktionslösungen entscheidend ist.

\n\n

1. Einrichtung der Umgebung für AWS Lambda in TypeScript

\n\n

Installieren Sie vor Beginn die erforderlichen Tools. Sie benötigen Node.js (Version 18+), npm und die AWS CLI.

\n\n

1.1. Installation der Abhängigkeiten

\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. TypeScript-Konfiguration

\n\n

Erstellen Sie eine Datei tsconfig.json mit Einstellungen für 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 der AWS CLI

\n\n

Laden Sie die AWS CLI von der offiziellen Quelle herunter und konfigurieren Sie sie. Führen Sie nach der Installation Folgendes aus:

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

Geben Sie Ihre Access Key ID, Ihren Secret Access Key, die Region (z. B. us-east-1) und das Ausgabeformat (json) ein.

\n\n

2. Erstellung der ersten Serverless-Funktion in TypeScript

\n\n

Die Projektstruktur sollte wie folgt aussehen:

\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. Basis-Lambda-Handler

\n\n

Erstellen Sie eine Datei src/handler.ts mit einer einfachen Funktion:

\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: 'Hello from AWS Lambda with TypeScript!',\n    timestamp: new Date().toISOString(),\n    eventType: event.httpMethod || 'UNKNOWN'\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. Kompilierung von TypeScript

\n\n

Fügen Sie Skripte in package.json hinzu:

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

Führen Sie die Kompilierung aus:

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

Überprüfen Sie, ob im Ordner dist die Datei handler.js vorhanden ist.

\n\n

3. Deployment der Lambda-Funktion auf AWS

\n\n

Es gibt mehrere Möglichkeiten für das Deployment. Betrachten wir die einfachste – über die AWS CLI.

\n\n

3.1. Paketierung der Funktion

\n\n

Erstellen Sie ein ZIP-Archiv mit dem Code:

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

3.2. Erstellung der Lambda-Funktion

\n\n

Führen Sie den AWS CLI-Befehl aus:

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

Blogs

Buchempfehlungen