Serverless mit TypeScript: AWS Lambda und Alternativen für das Backend

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

Serverless mit TypeScript: Ihr Backend ohne Server (und Kopfschmerzen)



Hallo, Kollege! Wenn du jemals einen VPS eingerichtet, mit nginx gekämpft, die CPU-Auslastung überwacht und um drei Uhr morgens eine abgestürzte PostgreSQL neu gestartet hast – dieser Artikel ist für dich. Die Welt bewegt sich in Richtung Serverless (serverloses Rechnen), und TypeScript ist die ideale Sprache, um in diesen Zug mit voller Geschwindigkeit einzusteigen.



Lass uns klären, was Serverless-Funktionen sind, wie man sie mit TypeScript schreibt und welche Plattformen (AWS Lambda, Google Cloud Functions, Yandex Cloud Functions) man für sein Projekt wählen sollte. Spoiler: Es wird Code geben, es wird Beispiele geben, aber Server wird es nicht geben.



Was ist Serverless? (Spoiler: Server gibt es doch)



Der Name „Serverless“ ist ein Marketing-Trick. Server gibt es natürlich, aber du weißt nichts von ihnen und willst nichts von ihnen wissen. Du schreibst einfach eine Funktion (normalerweise in TypeScript), lädst sie in die Cloud hoch, und sie wird auf Anfrage ausgeführt. Du zahlst nur für die Ausführungszeit – weder für einen stillstehenden Server noch für die Skalierung.



Dies wird als FaaS (Function as a Service) bezeichnet. Die Hauptvorteile sind:



  • Automatische Skalierung – von 0 auf 10.000 Anfragen pro Sekunde in wenigen Sekunden.
  • Kosteneffizienz – Sie zahlen für Millisekunden der Ausführung, nicht für die Miete einer Maschine.
  • Weniger DevOps – Die Cloud aktualisiert selbst die Laufzeitumgebung und patcht Sicherheitslücken.
  • TypeScript von Haus aus – Alle großen Anbieter unterstützen Node.js und damit auch TypeScript.


Es gibt aber auch Nachteile: Kaltstart (erste Millisekunden des Ladens), Zeitbegrenzung der Ausführung (normalerweise 15 Minuten), Schwierigkeiten beim Debuggen.



Unsere erste Serverless-Funktion mit TypeScript für AWS Lambda schreiben



AWS Lambda ist der König des Serverless. Beginnen wir damit. Installieren Sie aws-sdk und @types/aws-lambda für TypeScript.



npm init -ynpm install typescript @types/node aws-lambda --save-devnpx tsc --init


Erstellen Sie eine Datei handler.ts:



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

export const handler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => { const name = event.queryStringParameters?.name || 'Gast'; return { statusCode: 200, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: `Hallo, ${name}! Dies ist eine Serverless-Funktion mit TypeScript.`, timestamp: new Date().toISOString(), }), };};


Bauen Sie das Projekt:



npx tsczip -r function.zip .


Laden Sie das Archiv in AWS Lambda über die Konsole hoch, geben Sie die Laufzeit Node.js 20.x an und als Einstiegspunkt handler.handler.



Fertig! Sie haben jetzt eine HTTP-API, die keinen Server benötigt. Sie können sie an API Gateway hängen und nutzen.



Google Cloud Functions: TypeScript-Alternative von Google



Wenn Sie das Google-Ökosystem bevorzugen (Firebase, BigQuery, GCP), dann sind Google Cloud Functions Ihre Wahl. Die Syntax ähnelt AWS, aber es gibt Nuancen.



Installieren Sie das Tool:



npm install -g @google-cloud/functions-framework


Erstellen Sie index.ts:



import { Request, Response } from 'express';

export const helloWorld = (req: Request, res: Response) => { const name = req.query.name || 'Welt'; res.json({ message: `Hallo, ${name}! Dies ist eine Google Cloud Function mit TypeScript.`, timestamp: new Date().toISOString(), });};


Für lokale Tests:



npx @google-cloud/functions-framework --target=helloWorld


Bereitstellung mit einem Befehl:



gcloud functions deploy hello-world \  --runtime nodejs20 \  --trigger-http \  --allow-unauthenticated \  --entry-point hell                

Blogs

Buchempfehlungen