Amazon DVA-C02: Serverless und AWS Lambda — Lernleitfaden

Teil des AWS Developer Associate DVA-C02 — Lernleitfaden. Üben Sie mit verifizierten Antworten im Amazon-Prüfungscenter, oder absolvieren Sie zeitlich begrenzte Übungstests auf ExamRoll.io.

Versionen, Aliase, Layer und Packaging

Lambda-Versionen sind unveränderliche Snapshots von Code und Konfiguration, die mit der PublishVersion-API erstellt werden (zum Beispiel

undefined

). Verwenden Sie Versionen, um reproduzierbare Releases bereitzustellen, und erstellen Sie dann Aliase (

undefined

oder

undefined

) als stabile Zeiger, die auch eine Routing-Konfiguration zur Aufteilung des Traffics zwischen Versionen für schrittweise Rollouts (gradual rollouts) enthalten können. Layer bieten eine Möglichkeit, gemeinsame native Bibliotheken oder Laufzeitpakete zu teilen;

undefined

ermöglicht es Ihnen, Abhängigkeiten (z. B. kompilierte Binärdateien) getrennt von Ihrem Funktionspaket anzuhängen, sodass Builds kleiner und Kaltstarts schneller sind. Für das Packaging bevorzugen Sie kleine ZIP-Archive für schnelle Deployments (oder S3-gestützte Uploads für größere Artefakte) und verwenden Sie Container-Images, wenn Sie umfangreiche Binärdateien oder benutzerdefinierte Runtimes benötigen;

undefined

registriert in ECR gespeicherte Images (Container-Images unterstützen deutlich größere Formate). Häufige Fallstricke sind das Einbetten von Anmeldeinformationen in Umgebungsvariablen, das Überschreiten der Größenbeschränkungen für Bereitstellungspakete und das Vergessen, dass Layer versioniert und unveränderlich sind: Aktualisieren Sie Abhängigkeiten, indem Sie eine neue Layer-Version veröffentlichen und die Funktionskonfiguration aktualisieren. Für programmatische Rollbacks aktualisieren Sie den Alias, sodass er auf eine frühere Version verweist (

undefined

), um die betrieblichen Auswirkungen zu minimieren.

Ausführungsumgebung, Leistungsoptimierung und Minderung von Kaltstarts

Die CPU von Lambda skaliert mit dem Arbeitsspeicher. CPU-gebundene Workloads werden daher typischerweise durch Erhöhen der MemorySize-Einstellung (über

undefined

) verbessert, anstatt einen separaten CPU-Regler zu ändern; messen Sie mit AWS X-Ray- und CloudWatch-Metriken, um den optimalen Kompromiss (sweet spot) zwischen Ausführungsdauer und Kosten zu finden. Kaltstarts werden von der Paketgröße, dem Initialisierungscode, der Nutzung von VPC-Netzwerken (Latenz beim Anhängen von ENIs) und der Sprachlaufzeitumgebung beeinflusst; mildern Sie diese, indem Sie die Initialisierung verschlanken, große Bibliotheken in Layer auslagern, Provisioned Concurrency (

undefined

) verwenden oder Container-Images mit optimierten Entrypoints einsetzen. Bei an eine VPC angebundenen Funktionen vermeiden Sie Kaltstart-Spitzen, indem Sie VPC-Endpunkte für S3/DynamoDB oder RDS Proxy verwenden, um die Fluktuation von Verbindungen (connection churn) und die Kosten für NAT Gateways zu begrenzen; stellen Sie sicher, dass die Ausführungsrolle der Lambda-Funktion die verwaltete Richtlinie AWSLambdaVPCAccessExecutionRole enthält und dass die Subnetze über ausreichend IP-Adressraum für ENIs verfügen. Achten Sie auf Fallstricke wie synchrone Timeouts: Setzen Sie das Timeout der Funktion niedriger als das von nachgelagerten Abhängigkeiten, um sicherzustellen, dass ausgehende Aufrufer ein konsistentes Fehlermodell sehen, und verwenden Sie Idempotenz-Token für Wiederholungsversuche, da Dienste wie SQS, SNS und Kinesis eine „at-least-once“-Semantik bieten.

VPC-Zugriff, ephemerer Speicher und Sicherheitskontrollen

Wenn Sie eine Lambda-Funktion in einer VPC platzieren, müssen Sie Subnetz-IDs und Sicherheitsgruppen in der Funktionskonfiguration festlegen; die Funktion verwendet dann ENIs in diesen Subnetzen und benötigt Netzwerkpfade zu externen Diensten. Um S3 oder DynamoDB ohne NAT zu erreichen, erstellen Sie VPC-Endpunkte (Gateway für S3, Interface-Endpunkte für viele Dienste). Für Datenbanken bevorzugen Sie RDS Proxy, um Verbindungen zu poolen und die sprunghafte Erstellung von Verbindungen zu reduzieren. Das Verzeichnis /tmp stellt ephemeren Speicher für die Ausführungsumgebung bereit und ist während des Aufrufs beschreibbar; konfigurieren Sie bei Bedarf größeren ephemeren Speicher (Einstellung EphemeralStorage), aber entwerfen Sie nach Möglichkeit zustandslose Funktionen. Sichern Sie Secrets, indem Sie sie im AWS Secrets Manager oder Parameter Store (SSM) speichern und der Lambda-Rolle das Prinzip der geringsten Rechte (least privilege) gewähren; rufen Sie Secrets beim Kaltstart mit

undefined

ab oder verwenden Sie Umgebungsvariablen, die mit einem KMS-Schlüssel verschlüsselt sind, der im KMSKeyArn der Funktion angegeben ist. Häufige Fallstricke für Entwickler sind fehlende VPC-Endpunkte, die zu Timeouts führen, das Einbetten von Klartext-Schlüsseln in den Code und das Vergessen, Secrets effizient zu rotieren oder zu cachen, um eine Drosselung (Throttling) von API-Aufrufen an den Secrets Manager zu vermeiden.

Event-Integrationen, Fehlerbehandlung, lokale Tests und Deployment-Strategien

Lambda integriert sich nativ mit vielen Event-Quellen: S3-Event-Benachrichtigungen, DynamoDB Streams, Kinesis, SQS und API Gateway. Passen Sie bei Stream-Quellen die Batch-Größe und den parallelizationFactor an, überwachen Sie IteratorAge und behandeln Sie teilweise Fehlschläge, da Lambda fehlgeschlagene Batches erneut versucht und bei andauernden Fehlern die nachgelagerte Verarbeitung blockieren kann. Verwenden Sie bei asynchronen Aufrufen DLQs oder Destinations, um Fehlschläge zu erfassen (konfigurieren Sie den asynchronen Aufruf mit onFailure/onSuccess-Zielen). S3-getriggerte Funktionen müssen sich vor rekursiven Aufrufen schützen, wenn Sie in denselben Bucket zurückschreiben, indem Objektschlüssel geprüft oder Objekt-Tags verwendet werden. Lokale Tests werden am besten mit dem AWS SAM CLI (sam build; sam local invoke; sam local start-api) oder containerisierten Lambda-Laufzeitumgebungen durchgeführt; Unit-Tests können moto oder lokales Mocking verwenden, aber Integrationstests sollten gegen echte AWS-Ressourcen in kurzlebigen Test-Konten laufen. Deployments sollten versionierte Funktionen und Aliase sowie Traffic-Shifting über CodeDeploy oder UpdateAlias mit einer RoutingConfig verwenden, um Canary- oder lineare Deployments durchzuführen; implementieren Sie PreTraffic- und PostTraffic-Hooks zur Verifizierung. Typische Fallstricke sind das Ignorieren der Idempotenz bei Wiederholungsversuchen, die Nichtbehandlung von teilweisen BatchGetItem-Antworten (prüfen Sie UnprocessedKeys) und die Verwendung von zu weitreichenden IAM-Rollen für die Ausführung.

Praktisches Problem: Anwendungsfallszenario

Szenario: PhotoSpot Inc. betreibt eine Python-Lambda-Funktion, die in S3 hochgeladene Bilder verarbeitet, Metadaten in DynamoDB schreibt und eine Drittanbieter-API zur Bildoptimierung aufruft. Die Funktion benötigt eine schnelle Kaltstart-Performance, sichere API-Anmeldeinformationen, sichere Rollbacks und Zugriff auf einen in einer VPC gehosteten RDS-Proxy zur Anreicherung von Metadaten.

Herausforderung: Reduzieren Sie die Kaltstart-Latenz für für Benutzer sichtbare Uploads, schützen und rotieren Sie den API-Schlüssel des Drittanbieters und ermöglichen Sie Zero-Downtime-Rollbacks sowie kontrolliertes Traffic-Shifting.

Empfohlener Ansatz:

  1. Erstellen und veröffentlichen Sie unveränderliche Releases: Verwenden Sie das AWS CLI oder boto3, um den Code zu aktualisieren, dann

undefined

und erstellen/aktualisieren Sie einen Alias

undefined

. 2. Kaltstarts abmildern: Konfigurieren Sie Provisioned Concurrency für den Alias

undefined

und verschieben Sie große native Bibliotheken in einen veröffentlichten Layer (

undefined

). 3. Anmeldeinformationen sichern: Speichern Sie den API-Schlüssel des Drittanbieters im AWS Secrets Manager, vergeben Sie der Lambda-Rolle die geringsten Rechte (Least Privilege) und rufen Sie ihn beim Kaltstart mit

undefined

ab, anstatt Geheimnisse in Code oder unverschlüsselten Umgebungsvariablen einzubetten. 4. VPC- und Verbindungsmanagement: Platzieren Sie die Funktion in privaten Subnetzen mit Sicherheitsgruppen, verwenden Sie RDS Proxy für den DB-Zugriff, um Verbindungsstürme zu vermeiden, und erstellen Sie einen VPC-Endpunkt für S3, damit das Lesen von Bildern kein NAT erfordert.

Begründung: Die Verwendung von Versionen und Aliasen mit Traffic-Shifting ermöglicht sichere Rollouts und sofortige Rollbacks durch das Neuausrichten eines Alias. Provisioned Concurrency und Layer reduzieren die Initialisierungslatenz, während Secrets Manager die Rotation von Anmeldeinformationen zentralisiert und die Offenlegung von Geheimnissen minimiert. RDS Proxy und VPC-Endpunkte senken die Latenz und die Betriebskosten, indem sie die Verbindungsfluktuation (Connection Churn) und die Abhängigkeit von NAT reduzieren.


Alle Domänen · Amazon API Gateway und Anwendungsintegration

Diese Fragen üben → · Zeitlich begrenzte Übung auf ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Bestehe deine Prüfung →

Amazon durchsuchen →

Related guides

All-in-One Zugang

Ein Abonnement. Jede Prüfung.

Jeder Plan schaltet unbegrenzte Antwortsuche, Übungstests, KI-Erklärungen und die vollständige Ressourcenbibliothek frei – in über 20 Sprachen.

Monatlich
24.87
Just €0.83/day
Alles inklusive:
  • Unbegrenzte Antwortsuche
  • Unbegrenzte Übungstests
  • KI-gestützte Erklärungen
  • Vollständige Ressourcenbibliothek
  • Über 20 Sprachen
  • Wöchentliche Inhaltsaktualisierungen
  • Belohnungen & Empfehlungen
  • Priorisierter Support
Kostenlose Testphase starten

Keine Kreditkarte erforderlich*

Bestes Preis-Leistungs-Verhältnis
12 Monate
179.87
Just €0.49/daySave 40%
Alles inklusive:
  • Unbegrenzte Antwortsuche
  • Unbegrenzte Übungstests
  • KI-gestützte Erklärungen
  • Vollständige Ressourcenbibliothek
  • Über 20 Sprachen
  • Wöchentliche Inhaltsaktualisierungen
  • Belohnungen & Empfehlungen
  • Priorisierter Support
Kostenlose Testphase starten

Keine Kreditkarte erforderlich*

✓ Kostenloser Plan enthalten · ✓ Jederzeit kündbar · ✓ Alle Pläne schalten das vollständige Produkt frei