SST
Übersicht
SST (Serverless Stack) ist ein Framework zum Erstellen und Bereitstellen von Full-Stack-Anwendungen auf AWS mit High-Level-Konstrukten für Lambda, API Gateway, DynamoDB, S3 und Frontend-Frameworks. Es bietet lokale Live-Entwicklung, die mit echten AWS-Services verbunden ist, typsichere Ressourcenverknüpfung und Zero-Config TypeScript-Unterstützung.
Anleitung
- Bei der Definition der Infrastruktur verwenden Sie
sst.config.tsmit typisierten Komponenten wiesst.aws.Function,sst.aws.Api,sst.aws.Bucketundsst.aws.Dynamo. - Beim Verbinden von Ressourcen nutzen Sie die
link-Eigenschaft an Funktionen, um automatisch IAM-Berechtigungen zu erteilen und Umgebungsvariablen zu injizieren. Greifen Sie überResource.Namein Handlern auf verknüpfte Ressourcen zu. - Für die lokale Entwicklung verwenden Sie
sst dev. Dies führt Lambda lokal mit Hot Reload aus, während es mit echten AWS-Services (DynamoDB, S3, SQS) verbunden ist, und unterstützt VS Code-Breakpoint-Debugging. - Beim Deployment verwenden Sie
sst deploy --stage prodfür benannte Stages,sst deploy --stage pr-${PR_NUMBER}für Preview-Umgebungen undsst remove --stage devfür den Abbau. - Beim Deployment von Frontends verwenden Sie die Komponenten
sst.aws.Nextjs,sst.aws.Remixodersst.aws.Astrofür SSR auf Lambda mit statischen Assets auf S3 + CloudFront. - Bei der Verwaltung von Geheimnissen verwenden Sie
sst secret set KEY valuefür verschlüsselte, stage-spezifische Geheimnisspeicherung. - Bei der Code-Organisation halten Sie Handler in
packages/functions/schlank als Orchestratoren und platzieren Geschäftslogik inpackages/core/.
Beispiele
Beispiel 1: Erstellen einer Serverless-API mit DynamoDB
Benutzeranfrage: „Erstelle eine REST-API auf AWS mit DynamoDB unter Verwendung von SST“
Aktionen:
- Definieren Sie die DynamoDB-Tabelle und das API Gateway in
sst.config.ts - Verknüpfen Sie die Tabelle mit den API-Handler-Funktionen für automatische Berechtigungen
- Implementieren Sie CRUD-Handler, die über
Resource.MyTable.nameauf die Tabelle zugreifen - Führen Sie
sst devfür die lokale Live-Entwicklung gegen echte AWS-Services aus
Ergebnis: Eine serverlose REST-API mit typsicherem Ressourcenzugriff und Live-Debugging.
Beispiel 2: Bereitstellen einer Next.js-App mit Preview-Umgebungen
Benutzeranfrage: „Bereitstellen meiner Next.js-App auf AWS mit Preview-Umgebungen pro PR“
Aktionen:
- Konfigurieren Sie die Komponente
sst.aws.Nextjsmit einer benutzerdefinierten Domain und verknüpften Ressourcen - Richten Sie CI ein, um
sst deploy --stage pr-${PR_NUMBER}für jeden Pull Request auszuführen - Verknüpfen Sie Backend-Ressourcen (API, Datenbank) mit der Next.js-Bereitstellung
- Fügen Sie einen Bereinigungsschritt mit
sst removehinzu, wenn der PR geschlossen wird
Ergebnis: Eine produktionsreife Next.js-Bereitstellung auf AWS mit isolierten Preview-Umgebungen für jeden PR.
Richtlinien
- Verwenden Sie
linkanstelle manueller IAM-Richtlinien; SST generiert automatisch Berechtigungen mit minimalen Rechten. - Greifen Sie über
Resource.Namein Handlern auf verknüpfte Ressourcen zu; härten Sie niemals Tabellennamen oder Bucket-ARNs fest. - Verwenden Sie
sst devfür die tägliche Entwicklung; es ist schneller als bei jeder Änderung auf AWS zu deployen. - Erstellen Sie stages pro Entwickler (
sst dev --stage alice), sodass jeder Entwickler isolierte AWS-Ressourcen erhält. - Halten Sie Handler schlank: Geschäftslogik in
packages/core/, Handler inpackages/functions/. - Verwenden Sie
sst secretfür API-Schlüssel und Anmeldeinformationen; diese sind verschlüsselt und stage-spezifisch. - Richten Sie in CI
sst deploy --stage pr-${PR_NUMBER}für Preview-Umgebungen bei jedem Pull Request ein.