Stabiles Aufrufziel, während Sie neuen Lambda-Code bereitstellen.
→Veröffentlichen Sie nummerierte, unveränderliche Versionen; legen Sie einen Alias offen, der auf eine Version verweist. Aufrufer rufen den Alias ARN auf.
Warum: Versionen sind eingefrorene Snapshots von Code + Konfiguration; Aliase bieten eine Indirektion, sodass Aufrufer niemals `$LATEST` direkt aufrufen.
Referenz↗
Schrittweise Einführung einer neuen Lambda-Version mit automatischem Rollback bei Fehlern.
→Alias mit gewichtetem Versions-Routing (z.B. 90/10). CodeDeploy `LambdaCanary10Percent5Minutes` oder `LambdaLinear*` verschiebt den Traffic und überwacht CloudWatch-Alarme.
Warum: Die integrierte Traffic-Verschiebung + alarmgesteuertes Rollback eliminieren handcodierte Canary-Logik.
Referenz↗
Konfiguration (DB-URL, Feature-Flags) ohne erneute Bereitstellung injizieren.
→Lambda-Umgebungsvariablen. Ruhend KMS-verschlüsselt; verweisen Sie auf einen benutzerdefinierten CMK für zusätzliche Verschlüsselung während der Übertragung beim Abruf.
Referenz↗
NumPy / pandas / gemeinsame Laufzeit über viele Lambdas hinweg teilen.
→Als Lambda Layer paketieren; bis zu 5 Layer pro Funktion, insgesamt 250 MB entpackt. Versionierter ARN pro Layer.
Referenz↗
Latenzempfindliche synchrone Lambda — keine Kaltstarts erlaubt.
→Bereitgestellte Parallelität (Provisioned Concurrency) auf dem Alias. Initialisiert N Ausführungsumgebungen vorab; Bezahlung pro GB-Sekunde.
Warum: Eliminiert Kaltstarts zu vorhersehbaren Kosten. Konfigurieren Sie die Anwendungs-Auto-Skalierung auf dem Alias, um sich an die Last anzupassen.
Referenz↗
Java- oder Python-Lambda mit aufwendigem Initialisierungscode; schneller Kaltstart erforderlich, ohne für Provisioned Concurrency zu bezahlen.
→SnapStart für eine veröffentlichte Version aktivieren. AWS erstellt einen Snapshot der initialisierten Laufzeit und setzt von dort fort.
Warum: Kostenlos für Java; Kosten pro Wiederherstellung für Python/.NET. Reduziert Kaltstarts von Sekunden auf <1s ohne Leerlaufkosten.
Referenz↗
Lambda muss einen Kinesis-Stream / DynamoDB Stream / SQS-Warteschlange / MSK-Topic konsumieren.
→Ereignisquellen-Mapping (Pull-basiert). Lambda pollt; Batch-Größe + maximales Batching-Fenster optimieren Durchsatz vs. Latenz. Fehler → DLQ über On-Failure-Ziel.
Warum: Für Pull-Quellen kann der Dienst Lambda nicht direkt aufrufen; das Mapping ist Lambdas Polling-Adapter.
Referenz↗
Asynchrones Lambda-Erfolgs-/Fehler-Routing ohne Lambda DLQ.
→OnSuccess / OnFailure Ziele an der Funktion. Ziele: SNS, SQS, EventBridge, eine andere Lambda. Enthält den Aufrufkontext.
Warum: Ziele erfassen das vollständige Ereignis + die Antwort; die alte DLQ erfasst nur die Ereignis-Payload.
Referenz↗
Wählen Sie den API Gateway-Typ für eine neue REST-API aus.
→HTTP API: günstiger, schneller, JWT-Authentifizierung integriert, einfacher. REST API: volle Funktionalität (Mapping-Vorlagen, Anfrage-Validatoren, WAF, private Endpunkte, X-Ray, API-Caching).
Warum: Standardmäßig HTTP API verwenden, es sei denn, Sie benötigen eine reine REST-Funktion. WebSocket APIs sind ein separates Produkt für zustandsbehaftete Echtzeit-Anwendungen.
Referenz↗
API-Änderungen von Entwicklung → Test → Produktion befördern, ohne separate APIs erneut bereitzustellen.
→Stages auf einer einzigen API. Eine Stage bereitstellen, um sie zu veröffentlichen; Stage-Variablen speichern umgebungsspezifische Werte wie Lambda-Aliasnamen.
Referenz↗
Backend Lambda erwartet eine andere Form als das, was der Client sendet.
→Anfrage-/Antwort-Mapping-Vorlage (nur REST API). VTL mit `$input`, `$context`, `$util` zur JSON-Transformation.
Warum: Mapping-Vorlagen laufen in API Gateway – kein zusätzlicher Lambda-Hop, keine zusätzliche Latenz oder Kosten.
Referenz↗
Ein benutzerdefiniertes Token (nicht Cognito, nicht IAM) validieren, bevor die Anfrage weitergeleitet wird.
→Lambda-Authorizer. TOKEN-Typ liest einen Header; REQUEST-Typ liest den vollständigen Anfragekontext. Gibt IAM-Richtlinie + principalId zurück. Pro Identität für TTL gecacht.
Referenz↗
Ein Cognito User Pool JWT bei jeder Anfrage validieren.
→Cognito User Pool Authorizer (REST) oder JWT-Authorizer (HTTP). API Gateway validiert das Token; kein Lambda erforderlich.
Warum: Native Validierung ist billiger und schneller als ein Lambda-Authorizer für den gängigen JWT-Fall.
Referenz↗
Drosselung/Kontingentierung eines Partner-API-Konsumenten.
→Nutzungsplan + API-Schlüssel. Der Plan verknüpft Schlüssel mit einer Stage mit Ratenbegrenzung (Anfragen/Sekunde) + Burst + Kontingent (Anfragen/Tag oder Monat).
Referenz↗
Backend-Last für wiederholte GET-Anfragen reduzieren.
→Cache auf Stage-Ebene (REST API). TTL konfigurierbar; Cache-Schlüssel abgeleitet von Methode + Pfad + ausgewählten Abfrage-/Header-Parametern.
Referenz↗
Ein Element nur aktualisieren, wenn eine Vorbedingung erfüllt ist (z.B. status == "PENDING").
→PutItem/UpdateItem mit `ConditionExpression`. Fehler führt zu `ConditionalCheckFailedException`.
Warum: Serverseitige Überprüfung vermeidet Read-Modify-Write-Race Conditions ohne Sperren.
Referenz↗
Alles-oder-Nichts über mehrere DynamoDB-Elemente hinweg.
→`TransactWriteItems` / `TransactGetItems`. Bis zu 100 Elemente / 4 MB; 2× die WCU/RCU-Kosten normaler Schreib-/Leseoperationen.
Referenz↗
Einen Zähler inkrementieren, ohne Read-Modify-Write.
→UpdateExpression `ADD count :inc`. Der Server wendet das Delta atomar an.
Referenz↗
Zusätzliches Zugriffsmuster über den Primärschlüssel hinaus erforderlich.
→GSI: alternativer Partition + Sortierschlüssel, eventually consistent, separate Kapazität, kann jederzeit hinzugefügt werden. LSI: gleicher Partitionsschlüssel, alternativer Sortierschlüssel, Option für starke Konsistenz, muss bei der Tabellenerstellung erstellt werden.
Referenz↗
Nur Elemente indizieren, die ein bestimmtes Attribut haben (z.B. nur ACTIVE Bestellungen).
→Sparse-Index: das Attribut bei Elementen weglassen, die ausgeschlossen werden sollen. Elemente ohne das indizierte Attribut erscheinen nicht im GSI/LSI.
Referenz↗
Viele Elemente in großen Mengen lesen/schreiben.
→`BatchGetItem` (bis zu 100 Elemente / 16 MB) und `BatchWriteItem` (bis zu 25 Elemente / 16 MB). Nicht atomar; Teilerfolge werden in `UnprocessedItems` zurückgegeben.
Referenz↗
Verhinderung von verlorenen Aktualisierungen durch gleichzeitige Schreiber.
→Versionsattribut + `ConditionExpression: version = :v`. Fehlgeschlagene Schreibvorgänge versuchen es durch erneutes Lesen erneut.
Referenz↗
Downstream-Aktionen bei jeder DynamoDB-Änderung auslösen.
→DynamoDB Streams + Lambda-Ereignisquellen-Mapping. Stream-Ansicht: NEW_IMAGE / OLD_IMAGE / NEW_AND_OLD_IMAGES / KEYS_ONLY.
Referenz↗
Browser lädt/herunterlädt direkt zu S3, ohne dass Ihr Server Bytes proxyt.
→SDK `getSignedUrl` für GET oder PUT. Ablauf bis zu 7 Tage, wenn vom IAM-Benutzer signiert (sigv4); kürzer für rollenbasierte Sitzungen.
Warum: Entlastet Bandbreite von Ihrem Backend; URL ist eine temporäre Fähigkeit, die auf ein Objekt + Methode beschränkt ist.
Referenz↗
Eine große Datei (≫100 MB) zuverlässig vom SDK hochladen.
→`CreateMultipartUpload` → parallel `UploadPart` → `CompleteMultipartUpload`. Der High-Level-Transfer-Manager des SDK handhabt die Teilgröße automatisch.
Warum: Erforderlich >5 GB; empfohlen ≥100 MB. Fehlgeschlagene Teile werden unabhängig erneut hochgeladen. Legen Sie den Lebenszyklus fest, um unvollständige Multi-Part-Uploads abzubrechen und Speicherplatz zurückzugewinnen.
Referenz↗
Code ausführen, wenn ein Objekt in S3 erstellt/gelöscht wird.
→S3-Ereignisbenachrichtigungen → Lambda / SNS / SQS / EventBridge. Nach Präfix und Suffix filtern.
Referenz↗
Browser-App ruft von S3 über verschiedene Ursprünge ab (`fetch('https://bucket.s3...')`); CORS-Preflight schlägt fehl.
→CORS-Regeln für den Bucket konfigurieren: erlaubte Ursprünge, Methoden (GET/PUT), Header und offengelegte Header.
Referenz↗
Zeilen aus einem 50 GB CSV-/JSON-/Parquet-Objekt filtern, ohne es herunterzuladen.
→S3 Select mit SQL. Gibt nur übereinstimmende Zeilen zurück; Bezahlung für Scan + zurückgegebene Bytes.
Referenz↗
Einen Benutzer von einem öffentlichen Mobil-/Web-Client anmelden, ohne das Passwort zu senden.
→Cognito User Pool mit `USER_SRP_AUTH`-Fluss. Client berechnet SRP-Nachweis; Backend sieht das Passwort nie. Gibt ID + Zugriffs- + Refresh-Tokens zurück.
Referenz↗
Verbundener Benutzer (Google/Apple/Cognito UP) benötigt temporäre AWS-Anmeldeinformationen, um AWS-APIs direkt von einer mobilen App aufzurufen.
→Cognito Identity Pool. Tauscht Identitätsprovider-Token → IAM-Rolle → temporäre AWS-Anmeldeinformationen über STS.
Warum: User Pools authentifizieren Benutzer; Identity Pools autorisieren sie für AWS-Ressourcen.
Referenz↗
Wählen Sie einen Step Functions-Workflow-Typ aus.
→Standard: langlaufend (≤1 Jahr), genau einmal, 0,025 $/1k Übergänge, vollständige Historie. Express: ≤5 Min., mindestens einmal oder höchstens einmal, Abrechnung pro Anfrage + Dauer; für hohe Volumina ETL/Streaming.
Referenz↗
Workflow-Schritt schlägt fehl; Wiederholung mit Backoff und Weiterleitung an einen Wiederherstellungszustand erwünscht.
→`Retry`-Array (pro Zustand, mit `BackoffRate` + `MaxAttempts`) und `Catch` für die Weiterleitung bei terminalem Fehler. Abgleich nach `ErrorEquals` (z.B. `States.TaskFailed`, benutzerdefinierte Fehlernamen).
Referenz↗
Den gleichen Workflow auf jedes Element in einem Array anwenden, mit Parallelitätsbegrenzung.
→Map-Zustand mit `ItemsPath` und `MaxConcurrency`. Distributed Map verarbeitet mehr als 10.000 Elemente mit S3-gestützter Eingabe.
Referenz↗
Lambda entweder nach einem Cron-Zeitplan oder passenden eingehenden Ereignissen auslösen.
→EventBridge-Regel. Zeitplan: `rate(...)` oder `cron(...)`. Muster: JSON-Ereignisfilter; Abgleich nach Quelle, Detailtyp, Detailfeldern.
Referenz↗
Ereignisse von SQS / Kinesis / DynamoDB Streams / MSK an ein Ziel weiterleiten, mit optionalem Filter + Transformation.
→EventBridge Pipes. Quelle → Filter → Anreicherung (Lambda/Step Functions) → Ziel. Kein Lambda für die einfachen Fälle erforderlich.
Referenz↗
Nachrichten streng in der Reihenfolge pro Kunde verarbeiten, mit Deduplizierung.
→SQS FIFO-Warteschlange. `MessageGroupId` partitioniert die Reihenfolge (Parallelität pro Gruppe); `MessageDeduplicationId` (oder inhaltsbasierte Deduplizierung) löscht Duplikate innerhalb von 5 Minuten.
Referenz↗
Konsument ruft eine Nachricht ab, stürzt aber vor dem Löschen ab.
→Nachricht für VisibilityTimeout Sekunden verborgen, dann zur erneuten Zustellung wieder sichtbar. Abgestimmt auf die längste erwartete Verarbeitungszeit + Puffer.
Warum: Zu kurz → doppelte Verarbeitung. Zu lang → langsame Wiederherstellung bei Absturz. ChangeMessageVisibility verlängert die In-Flight-Zeit bei Bedarf.
Referenz↗
Ein Ereignis muss mehrere Konsumenten erreichen (Lambdas / SQS-Warteschlangen / HTTP-Endpunkte).
→SNS-Topic mit mehreren Abonnenten. Abonnement-Filterrichtlinien leiten nur übereinstimmende Nachrichten pro Abonnent weiter.
Referenz↗
Kinesis Data Streams-Kapazität für Schreibdurchsatz optimieren.
→Jeder Shard = 1 MB/s oder 1000 Datensätze/s hinein, 2 MB/s heraus. Shards hinzufügen (teilen) oder On-Demand-Modus für Auto-Skalierung verwenden.
Referenz↗