Amazon DVA-C02: Serverless & AWS Lambda — Studiegids

Onderdeel van de AWS Developer Associate DVA-C02 — Studiegids. Oefen met geverifieerde antwoorden in het Amazon-examencentrum, of doe getimede oefentests op ExamRoll.io.

Versies, aliassen, layers en packaging

Lambda-versies zijn onveranderlijke snapshots van code en configuratie die worden gemaakt met de PublishVersion API (bijvoorbeeld

undefined

). Gebruik versies om reproduceerbare releases te bieden en maak vervolgens aliassen (

undefined

of

undefined

) als stabiele pointers die ook een routeringsconfiguratie kunnen bevatten om verkeer tussen versies te splitsen voor geleidelijke rollouts. Layers bieden een manier om gemeenschappelijke native libraries of runtime-packages te delen; met

undefined

kun je afhankelijkheden (bijv. gecompileerde binaries) los van je functiepakket koppelen, zodat builds kleiner zijn en cold starts sneller. Geef voor packaging de voorkeur aan kleine zip-archieven voor snelle implementaties (of uploads via S3 voor grotere artefacten) en gebruik container-images wanneer je omvangrijke binaries of aangepaste runtimes nodig hebt;

undefined

undefined

zal images registreren die zijn opgeslagen in ECR (container-images ondersteunen veel grotere formaten). Veelvoorkomende valkuilen zijn het opnemen van credentials in omgevingsvariabelen, het overschrijden van de limieten voor de grootte van het deployment-pakket, en vergeten dat layers geversioneerd en onveranderlijk zijn: werk afhankelijkheden bij door een nieuwe layer-versie te publiceren en de functieconfiguratie aan te passen. Voor programmatische rollbacks, update de alias om naar een vorige versie te verwijzen (

undefined

) om de operationele impact te minimaliseren.

Execution environment, performance tuning en cold-start mitigatie

Lambda CPU schaalt mee met het geheugen, dus het verbeteren van CPU-gebonden workloads wordt doorgaans gedaan door de MemorySize-instelling te verhogen (via

undefined

) in plaats van een aparte CPU-knop aan te passen; meet met AWS X-Ray en CloudWatch-metrics om de sweet spot te vinden tussen duur en kosten. Cold starts worden beïnvloed door de pakketgrootte, initialisatiecode, het gebruik van VPC-netwerken (ENI attachment latency) en de taalruntime; beperk dit door de initialisatie in te korten, zware libraries naar layers te verplaatsen, Provisioned Concurrency te gebruiken (

undefined

), of container-images met geoptimaliseerde entrypoints in te zetten. Voor functies die aan een VPC gekoppeld zijn, vermijd cold-start pieken door VPC-endpoints voor S3/DynamoDB of RDS Proxy te gebruiken om connection churn en NAT Gateway-kosten te beperken; zorg ervoor dat de Lambda execution role de AWSLambdaVPCAccessExecutionRole managed policy bevat en dat subnetten voldoende IP-adresruimte hebben voor ENI’s. Wees je bewust van valkuilen zoals synchrone timeouts: stel de timeout van de functie lager in dan die van downstream-afhankelijkheden om ervoor te zorgen dat uitgaande bellers een consistent faalmodel zien, en gebruik idempotency tokens voor retries, omdat services zoals SQS, SNS en Kinesis at-least-once semantiek leveren.

VPC-toegang, tijdelijke opslag en beveiligingsmaatregelen

Wanneer je een Lambda in een VPC plaatst, moet je subnet-ID’s en security groups configureren in de functieconfiguratie; de functie gebruikt dan ENI’s in die subnetten en heeft netwerkpaden naar externe services nodig. Om S3 of DynamoDB te bereiken zonder NAT, maak je VPC-endpoints aan (Gateway voor S3, Interface-endpoints voor veel services). Gebruik voor databases bij voorkeur RDS Proxy om verbindingen te poolen en de plotselinge aanmaak van veel verbindingen te verminderen. De /tmp-directory biedt tijdelijke opslag voor de uitvoeringsomgeving en is beschrijfbaar tijdens een aanroep; configureer indien nodig grotere tijdelijke opslag (instelling EphemeralStorage), maar ontwerp waar mogelijk voor stateless functies. Beveilig secrets door ze op te slaan in AWS Secrets Manager of Parameter Store (SSM) en de Lambda-rol de minste privileges (least privilege) te geven; haal secrets op tijdens de cold start met

undefined

of gebruik omgevingsvariabelen die zijn versleuteld met een KMS-sleutel die is opgegeven in de KMSKeyArn van de functie. Veelvoorkomende valkuilen voor ontwikkelaars zijn ontbrekende VPC-endpoints die tot timeouts leiden, het insluiten van platte-tekst sleutels in code, en het vergeten om secrets efficiënt te roteren of te cachen om throttling van Secrets Manager API-calls te voorkomen.

Event-integraties, foutafhandeling, lokaal testen en implementatiestrategieën

Lambda integreert native met veel eventbronnen: S3 event notifications, DynamoDB Streams, Kinesis, SQS en API Gateway. Voor stream-bronnen, stem de batch size en parallelizationFactor af, monitor IteratorAge en handel gedeeltelijke fouten af, aangezien Lambda mislukte batches opnieuw zal proberen en downstream-verwerking kan blokkeren wanneer fouten aanhouden. Gebruik voor asynchrone aanroepen DLQ’s of Destinations om fouten op te vangen (configureer asynchrone aanroep met onFailure/onSuccess destinations). Door S3 getriggerde functies moeten zich beschermen tegen recursieve aanroepen wanneer je terugschrijft naar dezelfde bucket, door object keys te controleren of object tags te gebruiken. Lokaal testen kan het beste worden gedaan met de AWS SAM CLI (sam build; sam local invoke; sam local start-api) of gecontaineriseerde Lambda runtimes; unit tests kunnen moto of lokale mocking gebruiken, maar integratietests moeten worden uitgevoerd tegen echte AWS-resources in tijdelijke testaccounts. Implementaties moeten gebruikmaken van versies van functies + aliassen en traffic shifting via CodeDeploy of UpdateAlias met een RoutingConfig om canary- of lineaire implementaties uit te voeren; implementeer PreTraffic en PostTraffic hooks voor verificatie. Typische valkuilen zijn het negeren van idempotentie bij retries, het niet afhandelen van gedeeltelijke BatchGetItem-responses (controleer UnprocessedKeys) en het gebruik van te brede IAM-rollen voor de uitvoering.

Praktijkprobleem: Use-Case Scenario

Scenario: PhotoSpot Inc heeft een Python Lambda-functie die afbeeldingen verwerkt die naar S3 zijn geüpload, metadata naar DynamoDB schrijft en een externe API voor beeldoptimalisatie aanroept. De functie vereist snelle cold-start prestaties, veilige API-credentials, veilige rollbacks en toegang tot een in een VPC gehoste RDS-proxy voor metadataverrijking.

Uitdaging: Verminder de cold-start latentie voor voor gebruikers zichtbare uploads, bescherm en roteer de API-sleutel van de externe partij, en maak zero-downtime veilige rollbacks en gecontroleerde traffic shifting mogelijk.

Aanbevolen Aanpak:

  1. Bouw en publiceer onveranderlijke (immutable) releases: gebruik de AWS CLI of boto3 om de code bij te werken, vervolgens boto3.client(’lambda’).publish_version(FunctionName=‘PhotoProcessor’) en maak/update een alias boto3.client(’lambda’).update_alias(FunctionName=‘PhotoProcessor’, Name=‘prod’, FunctionVersion=‘7’, RoutingConfig={‘AdditionalVersionWeights’: {‘8’: 0.1}}).
  2. Beperk cold starts: configureer Provisioned Concurrency voor de alias boto3.client(’lambda’).put_provisioned_concurrency_config(FunctionName=‘PhotoProcessor’, Qualifier=‘prod’, ProvisionedConcurrentExecutions=10) en verplaats zware native libraries naar een gepubliceerde layer (boto3.client(’lambda’).publish_layer_version).
  3. Beveilig credentials: sla de API-sleutel van de externe partij op in AWS Secrets Manager, geef de Lambda-rol ’least-privilege’ rechten, en haal de sleutel op bij een cold start met boto3.client(‘secretsmanager’).get_secret_value(SecretId=secret_arn) in plaats van secrets in de code of als platte omgevingsvariabelen op te nemen.
  4. VPC en verbindingsbeheer: plaats de functie in private subnets met security groups, gebruik RDS Proxy voor DB-toegang om verbindingsstormen te voorkomen, en maak een VPC-eindpunt voor S3 zodat het lezen van afbeeldingen geen NAT vereist.

Rationale: Het gebruik van versies en aliassen met traffic shifting maakt veilige rollouts en onmiddellijke rollbacks mogelijk door een alias naar een andere versie te laten wijzen. Provisioned Concurrency en layers verminderen de initialisatielatentie, terwijl Secrets Manager de rotatie van credentials centraliseert en de blootstelling van secrets minimaliseert. RDS Proxy en VPC-eindpunten verlagen de latentie en operationele kosten door het verminderen van ‘connection churn’ en de afhankelijkheid van NAT.


Alle domeinen · Amazon API Gateway

Oefen deze vragen → · Getimede oefening op 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.

Slaag voor je examen →

Blader door Amazon →

Related guides

Alles-in-één toegang

Eén abonnement. Elk examen.

Elk plan ontgrendelt onbeperkt zoeken naar antwoorden, oefentests, AI-uitleg en de volledige bronnenbibliotheek — in meer dan 20 talen.

Maandelijks
24.87
Just €0.83/day
Alles inbegrepen:
  • Onbeperkt zoeken naar antwoorden
  • Onbeperkte oefentests
  • AI-gestuurde uitleg
  • Volledige bronnenbibliotheek
  • 20+ talen
  • Wekelijkse contentupdates
  • Beloningen & verwijzingen
  • Prioriteitsondersteuning
Start gratis proefperiode

Geen creditcard vereist*

Beste waarde
12 maanden
179.87
Just €0.49/daySave 40%
Alles inbegrepen:
  • Onbeperkt zoeken naar antwoorden
  • Onbeperkte oefentests
  • AI-gestuurde uitleg
  • Volledige bronnenbibliotheek
  • 20+ talen
  • Wekelijkse contentupdates
  • Beloningen & verwijzingen
  • Prioriteitsondersteuning
Start gratis proefperiode

Geen creditcard vereist*

✓ Gratis plan inbegrepen · ✓ Annuleer op elk moment · ✓ Alle plannen ontgrendelen het volledige product