Einführung in die Welt von Serverless und AWS Lambda
Moderne Cloud-Entwicklung setzt zunehmend auf Serverless-Architektur. Trotz des Namens verschwinden Server nicht – Sie hören nur auf, über sie nachzudenken. AWS Lambda ist ein Dienst von Amazon, der es ermöglicht, Code auszuführen, ohne Server bereitstellen oder verwalten zu müssen. Sie zahlen nur für die tatsächliche Ausführungszeit und die Anzahl der Anfragen.
In diesem Artikel behandeln wir AWS Lambda mit JavaScript (Node.js) von den Grundlagen bis zu praktischen Beispielen. Sie erfahren, wie Sie Funktionen erstellen, konfigurieren und bereitstellen, und lernen die Best Practices kennen.
Grundlagen von AWS Lambda für Node.js
Was ist eine Lambda-Funktion?
Eine Lambda-Funktion ist ein isolierter Codeblock, der als Reaktion auf ein Ereignis (Trigger) ausgeführt wird. Die Funktion erhält event (Ereignisdaten) und context (Informationen über die Ausführungsumgebung) und gibt ein Ergebnis zurück.
Aufbau einer einfachen Lambda-Funktion
Eine grundlegende Funktion in Node.js sieht so aus:
exports.handler = async (event, context) => { const name = event.queryStringParameters?.name || 'Gast'; const response = { statusCode: 200, body: JSON.stringify({ message: `Hallo, ${name}!` }), }; return response;};- exports.handler – obligatorischer Einstiegspunkt.
- event – enthält die vom Trigger übergebenen Daten (z. B. HTTP-Anfrage von API Gateway).
- context – stellt Methoden für die Ausführung bereit (Zeit, Logger, Identifikator).
- Die Funktion muss async sein oder ein Promise zurückgeben.
Trigger (Aufrufquellen)
Lambda existiert nicht im luftleeren Raum. Sie kann aufgerufen werden durch:
- API Gateway – HTTP-Anfragen (REST/WebSocket).
- S3 – Hochladen/Löschen von Dateien.
- DynamoDB Streams – Änderungen in der Datenbank.
- SQS/SNS – Nachrichtenwarteschlangen.
- CloudWatch Events – Zeitplan (Cron).
Erstellung und Deployment einer Lambda-Funktion
Schritt 1: Umgebung einrichten
Sie benötigen:
- Ein AWS-Konto.
- Installiertes AWS CLI und konfigurierte Anmeldedaten.
- Node.js (Version 18 oder 20, von AWS empfohlen).
Schritt 2: Funktion über die Konsole erstellen
Dies ist der schnellste Weg für Anfänger:
- Gehen Sie zur AWS Management Console → Lambda.
- Klicken Sie auf "Funktion erstellen" → "Von Grund auf neu".
- Geben Sie einen Namen ein, wählen Sie die Laufzeitumgebung Node.js 20.x.
- Klicken Sie auf "Erstellen".
Fügen Sie im Code-Editor unser obiges Beispiel ein und klicken Sie auf "Deploy". Fertig!
Schritt 3: Deployment mit AWS CLI
Zur Automatisierung des Deployments verwenden Sie den Befehl:
zip -r function.zip index.js node_modulesaws lambda update-function-code \ --function-name my-first-lambda \ --zip-file fileb://function.zipFortgeschrittene Szenarien und Best Practices
Arbeiten mit Umgebungsvariablen
Speichern Sie Geheimnisse niemals im Code. Verwenden Sie process.env:
const dbPassword = process.env.DB_PASSWORD;const tableName = process.env.TABLE_NAME;Die Variablen werden in den Funktionseinstellungen festgelegt (Configuration → Environment variables).
Fehlerbehandlung und Protokollierung
Verwenden Sie den integrierten Logger console.log – er sendet Protokolle automatisch an CloudWatch:
exports.handler = async (event) => { console.log('Event empfangen:', JSON.stringify(event, null, 2)); try { // Ihr Code } catch (error) { console.error('Fehler:', error.message); throw e