Cursus
Een van de belangrijkste AWS-services om te begrijpen is AWS Lambda—een serverloze compute-service die code uitvoert als reactie op events en automatisch de onderliggende resources beheert.
Nu Lambda steeds vaker wordt gebruikt, is het logisch dat je tijdens technische sollicitaties vragen over AWS Lambda tegenkomt.
Deze gids maakt je voorbereiding op AWS Lambda-sollicitaties eenvoudiger met een zorgvuldig samengestelde lijst met vragen en antwoorden. We behandelen de basis en gaan ook in op geavanceerde en praktische scenario’s.
Wil je meer leren over AWS? Bekijk dan deze cursus over AWS Cloud Technology and Services.
Waarom AWS?
Voordat we de sollicitatievragen en -antwoorden induiken, is het belangrijk om te begrijpen waarom de AWS Cloud het meest gebruikte platform is—dit kan op zichzelf al een vraag zijn tijdens je interview.
Laten we beginnen met de volgende grafiek:

Bron (Statista)
De grafiek laat de dominantie van AWS zien op de wereldwijde markt voor cloudinfrastructuurservices in Q2 2023. Met een marktaandeel van 32% is AWS de duidelijke leider, ruim vóór de naaste concurrent Microsoft Azure, met 22% marktaandeel. Hoewel andere grote spelers zoals Google Cloud (11%) en Alibaba Cloud (4%) bijdragen aan de markt, verbleken hun aandelen vergeleken met AWS en Azure.
De totale omzet uit cloudinfrastructuurservices in Q2 2023, goed voor 65 miljard dollar, benadrukt bovendien het groeiende belang en de financiële relevantie van deze markt. De leidende positie van AWS in deze bloeiende sector onderstreept de strategische waarde voor bedrijven die betrouwbare en schaalbare cloudoplossingen zoeken.
Wil je meer weten over hoe verschillende cloudproviders zich tot elkaar verhouden? Bekijk dan deze cheatsheet over AWS-, Azure- en GCP-diensten vergeleken.
Hoewel de financiële aspecten belangrijk zijn, reikt de aantrekkingskracht van AWS verder dan marktaandeel: het platform biedt een enorme selectie aan services, betrouwbaarheid, schaalbaarheid, wereldwijde dekking, robuuste beveiliging, continue innovatie en een ondersteunende community. Die combinatie maakt AWS-kennis zeer gewild in de techsector en opent veel carrièrekansen voor wie bedreven is in dit toonaangevende cloudplatform.
Laten we een paar sollicitatievragen bekijken!
Basis AWS Lambda-sollicitatievragen
We beginnen bij de basis. Of je nu nieuw bent met AWS Lambda of je kennis wilt opfrissen, deze fundamentele punten bereiden je voor op een diepere duik in de mogelijkheden van Lambda.
1. Wat is AWS Lambda?
AWS Lambda is een serverloze compute-service waarmee je code kunt draaien zonder servers te hoeven inrichten of beheren. Lambda voert code alleen uit wanneer dat nodig is en schaalt automatisch, van enkele verzoeken per dag tot duizenden per seconde.
2. Wat zijn de belangrijkste componenten van een Lambda-functie?
De belangrijkste componenten van een Lambda-functie zijn:
- Handler: Het instappunt van je functie, een methode in je code die het event verwerkt. Zie het als de "main"-functie van je Lambda-code.
- Event: De JSON-geformatteerde inputdata die de uitvoering van de functie triggert. Deze bevat informatie over wat de aanroep heeft gestart.
- Context: Een object met runtime-informatie over de uitvoeringsomgeving van de functie. Bevat details zoals functienaam, versie, geheugengrenzen, request-ID en resterende uitvoeringstijd.
- Omgevingsvariabelen: Key-valueparen die je kunt instellen om het gedrag van je Lambda-functie te configureren zonder de code aan te passen. Vaak gebruikt voor API-sleutels, databasegegevens of andere instellingen.
3. Welke talen ondersteunt Lambda?
Lambda ondersteunt native Node.js, Python, Ruby, Java, Go, C# en PowerShell. Dit betekent dat we onze Lambda-functies rechtstreeks in deze talen kunnen schrijven zonder extra setup.
Daarnaast biedt Lambda de mogelijkheid om custom runtimes te gebruiken, met de flexibiliteit om onze functiecode en dependencies te verpakken in een container image. Zo kun je vrijwel elke programmeertaal gebruiken en het hulpmiddel kiezen dat het beste past.
4. Hoe maak je een Lambda-functie?
Er zijn verschillende manieren om Lambda-functies te maken:
|
Methode |
Beschrijving |
Het meest geschikt voor |
|
Lambda-console |
Schrijf code direct in de browsereditor. |
Eenvoudige functies, snel testen |
|
Deploymentpakket |
Verpak code en dependencies in een ZIP-archief en upload. |
Grotere projecten, complexe functies |
|
Container image |
Verpak de functie als een Docker-containerimage. |
Custom runtimes, specifieke configuraties |
|
Infrastructure-as-Code |
Definieer functies en resources declaratief met AWS SAM, CloudFormation of CDK. |
Beheer van complexe serverless-applicaties, automatisering |
5. Op welke manieren kun je een Lambda-functie aanroepen?
We kunnen Lambda-functies op verschillende manieren aanroepen:
- Synchrone aanroep: De client wacht tot de functie voltooit en een response teruggeeft.
- Asynchrone aanroep: De client wacht niet op een response—Lambda voert de functie op de achtergrond uit.
- Event source mapping: Lambda pollt automatisch services zoals DynamoDB of Kinesis en roept functies aan op basis van events.
- Andere methoden: Zoals via API Gateway, AWS SDK’s of geplande aanroepen via Amazon EventBridge.
Intermediate AWS Lambda-sollicitatievragen
1. Hoe deployen we dependencies samen met Lambda-code?
Er zijn enkele opties om dependencies samen met Lambda-code te verpakken:
- Directe opname: Voor geïnterpreteerde talen kunnen we dependencybestanden samen met onze functiecode in het .zip-deploymentpakket plaatsen.
- Lambda-layers: Voor gecompileerde talen of grotere dependencies kunnen we Lambda-layers gebruiken om gedeelde dependencies apart te verpakken en te delen tussen functies.
- Containerimages: We kunnen dependencies ook in containerimages verpakken, samen met de Lambda-functiecode en een custom runtime.
2. Hoe optimaliseren we de performance van Lambda-functies?
We hebben verschillende mogelijkheden om Lambda-functies te optimaliseren:
- Geheugentoewijzing: De juiste geheugenmaat kiezen is cruciaal voor de balans tussen kosten en performance. Tools zoals AWS Lambda Power Tuning helpen de optimale configuratie te vinden.
- Pakketgrootte: Kleinere functiepakketten zorgen voor snellere cold starts (de tijd die een Lambda-functie nodig heeft om bij de eerste aanroep te initialiseren). Minimaliseer de pakketgrootte door onnodige dependencies te verwijderen en code te comprimeren.
- Lambda SnapStart: Deze feature initialiseert functionele omgevingen vooraf en verkort cold starts aanzienlijk voor specifieke runtimes.
- Provisioned concurrency: Houd functiebestanden warm met provisioned concurrency voor consistente responstijden bij kritieke workloads.
- Timeouts en concurrency-limieten: Stel passende timeouts en gereserveerde concurrency in om runaway-functies te voorkomen en een stabiele Lambda-omgeving te behouden.
3. Welke tools kun je gebruiken om Lambda-functies te monitoren en debuggen?
Lambda stuurt automatisch metrics naar Amazon CloudWatch, waaronder aantal requests, latentie, foutpercentages en meer.
We kunnen CloudWatch Logs gebruiken voor toegang tot logs die onze functiecode en de Lambda-runtime genereren.
Voor tracing en het troubleshooten van de performance van gedistribueerde Lambda-applicaties kunnen we AWS X-Ray gebruiken.
4. Waarvoor worden Lambda-extensions gebruikt?
Met Lambda-extensions kunnen we functies uitbreiden door te integreren met monitoring-, observability-, security- en governance-tools.
Extensions kunnen als aparte processen draaien in de execution environment om diagnostische informatie vast te leggen of data naar custom bestemmingen te sturen.
Voorbeelden zijn de Datadog-extension voor metrics en traces, en de AWS AppConfig-extension voor dynamische configuratie-updates.
5. Wat is een event source mapping?
Een event source mapping is een Lambda-resource die items leest van een eventbron en een functie aanroept.
We kunnen event source mappings gebruiken om items te verwerken uit Amazon DynamoDB Streams, Amazon Kinesis Streams, Amazon MQ-queues, self-managed Apache Kafka, Amazon SQS-queues en meer.
Lambda biedt een pollingmechanisme om batches records van de eventbronnen te lezen en een functie aan te roepen.
Geavanceerde AWS Lambda-sollicitatievragen
1. Hoe beheer je de toegang tot Lambda-functies?
AWS Lambda gebruikt IAM (Identity and Access Management) om toegang op twee niveaus te regelen:
- Resource-based policies bepalen welke AWS-accounts, services en resources de functie mogen aanroepen.
- De execution role van de functie bepaalt tot welke AWS-services en -resources de functiecode toegang heeft. Volg het least-privilegeprincipe: maak policies zo restrictief mogelijk, terwijl de functie nog steeds haar taken kan uitvoeren.
2. Hoe minimaliseer je cold starts in Lambda?
Cold starts treden op wanneer Lambda een nieuwe uitvoeringsomgeving moet initialiseren om een aanroep te verwerken. Om cold starts te beperken en de responsiviteit van onze Lambda-functie te verbeteren, kunnen we verschillende strategieën toepassen:
- Gebruik SnapStart: Deze feature (beschikbaar voor bepaalde runtimes) laat ons geïnitialiseerde omgevingen bewaren, waardoor opstarttijden bij volgende aanroepen sterk dalen.
- Provisioned concurrency inschakelen: Door een pool van geïnitialiseerde omgevingen paraat te houden, elimineer je cold starts voor voorspelbare workloads.
- Pakketgrootte optimaliseren: Door dependencies te schrappen en code te optimaliseren, verklein je het pakket en versnel je initialisatie.
- Taalselectie: Kies talen als Go of Rust, die sneller starten dan JVM-talen, om cold start-vertraging te beperken.
- Execution context hergebruiken: Houd je functiecode gescheiden van init-logica, zodat de execution context tussen aanroepen hergebruikt kan worden en overhead afneemt.
3. Wat zijn enkele gangbare best practices voor API-beveiliging met Lambda?
Bij het ontsluiten van Lambda-functies via API Gateway, gelden onder andere deze security best practices:
- Gebruik IAM of Lambda-authorizers voor authenticatie en autorisatie.
- Schakel Amazon Cognito user pools in voor gebruikersbeheer.
- Definieer resource policies om toegang toe te staan of te weigeren op basis van requesteigenschappen zoals bron-IP’s.
- Stel mTLS in voor veilige client-servercommunicatie.
- Gebruik AWS WAF om te beschermen tegen veelvoorkomende webaanvallen op API’s.
4. Wat zijn de verschillen tussen Lambda-containerimages en .zip-deploymentpakketten?
Met Lambda-containerimages kun je functiecode en dependencies verpakken in een OCI-compatibel containerformaat. Laten we containerimages vergelijken met .zip-deploymentpakketten:
|
Kenmerk |
Containerimages |
.zip-deploymentpakketten |
|
Runtime-flexibiliteit |
Eigen runtime meenemen (elke taal of versie) |
Beperkt tot vooraf gedefinieerde Lambda-runtimes |
|
Deploymentgrootte |
Tot 10 GB |
Tot 250 MB (uitgepakt) |
|
Deployment & cold start |
Langzamere deployments en mogelijk hogere cold start-latentie |
Snellere deployments en doorgaans lagere cold start-latentie |
|
Tooling & workflow |
Naadloze integratie met onze bestaande container-tooling en -workflows |
Kan extra tooling vereisen voor dependencybeheer en deployment |
|
Het meest geschikt voor |
Applicaties met grote dependencies of custom runtime-eisen |
Kleinere applicaties en apps die met Lambda’s vooraf gedefinieerde runtimes werken |
5. Kunnen Lambda-functies andere Lambda-functies aanroepen?
Ja, Lambda-functies kunnen andere functies direct aanroepen met de AWS SDK. Veelvoorkomende use-cases zijn orkestratie, het aggregeren van resultaten van meerdere functies en fan-out eventverwerking.
Wanneer een Lambda-functie een andere aanroept, moet de resource-based policy van de aangeroepen functie expliciet toegang verlenen aan de aanroepende functie.
Praktische AWS Lambda-sollicitatievragen
1. Hoe implementeer je een eenvoudige REST API met Lambda en API Gateway?
We kunnen een eenvoudige REST API implementeren met Lambda en API Gateway door de volgende stappen te nemen:
- Maak een Lambda-functie: Ontwikkel een Lambda-functie die input van API Gateway ontvangt als een eventobject en een responseobject met data en statuscodes teruggeeft.
- Maak een API Gateway: In API Gateway maken we een nieuwe REST API met een resource en methode die overeenkomen met het API-pad en de HTTP-methode.
- Configureer de integratie: We stellen het integratietype van de methode in als Lambda-proxy en geven de aan te roepen functie op.
- Deploy de API: Deploy de API om een openbare URL-endpoint te genereren.
- Test grondig: We kunnen tools zoals cURL of Postman gebruiken om te controleren of de API correct werkt, met de Lambda-functie die requests afhandelt en passende responses teruggeeft.
2. Hoe configureer je een Lambda-functie om events van een S3-bucket te verwerken?
We kunnen een Lambda-functie configureren om events van een S3-bucket te verwerken met deze stappen:
- We maken een Lambda-functie met de juiste permissies voor toegang tot de S3-bucket.
- In de S3-console configureren we een eventmelding op de bronbucket.
- We kiezen de eventtypen die de melding triggeren, zoals het aanmaken of verwijderen van objecten.
- We geven de Lambda-functie op als bestemming voor de melding.
- We testen door acties uit te voeren op de S3-bucket die overeenkomen met de ingestelde eventtypen.
- We controleren of de Lambda-functie wordt aangeroepen met een event dat details van de S3-actie bevat.
3. Hoe configureer je een Lambda-functie om data naar een DynamoDB-tabel te schrijven?
We kunnen een Lambda-functie configureren om data naar een DynamoDB-tabel te schrijven in zes stappen:
- We maken een DynamoDB-tabel met een passende primaire sleutel en eventuele vereiste secundaire indexen.
- We maken een IAM-rol voor de Lambda-functie met permissies voor toegang tot DynamoDB.
- We maken een Lambda-functie en koppelen de IAM-rol.
- We gebruiken de DynamoDB SDK om een client aan te maken met de tabelnaam.
- We gebruiken de
put_item-methode om items naar de tabel te schrijven, met opgave van de sleutelattributen en andere velden. - Test de functie met voorbeeldevents en controleer met DynamoDB-queries of de data correct is weggeschreven.
4. Hoe implementeer je een geplande Lambda-functie?
We kunnen een geplande Lambda-functie implementeren met deze stappen–we:
- Maak een Lambda-functie die op een schema de gewenste taak uitvoert.
- Open de Amazon EventBridge-console en maak een nieuwe regel.
- Definieer een schema-expressie voor de regel met rate- of cron-syntaxis.
- Selecteer de Lambda-functie als target voor de regel.
- Sla de regel op en test door te wachten op het volgende geplande event.
- Controleer de uitvoering van de functie in CloudWatch-metrics en -logs.
5. Hoe verplaats je verkeer geleidelijk naar een nieuwe versie van een Lambda-functie?
Om verkeer naar een nieuwe versie van een Lambda-functie te verschuiven, doen we het volgende:
- Publiceer een nieuwe versie van de Lambda-functie met de bijgewerkte code.
- Maak een alias die naar de oudere stabiele versie wijst.
- Werk de alias bij om het verkeer te splitsen tussen de oude en nieuwe versies met gewichten (bijv. 90/10).
- Pas de gewichten geleidelijk aan om meer verkeer naar de nieuwe versie te sturen, terwijl je de metrics monitort.
- Als je tevreden bent, update de alias zodat 100% van het verkeer naar de nieuwe versie gaat.
- Herhaal dit proces bij de volgende update en behandel de vorige versie als de nieuwe stabiele versie.
Conclusie
Deze veelvoorkomende AWS Lambda-sollicitatievragen toetsen je begrip van kernconcepten, best practices en praktische gebruikspatronen van Lambda.
Onthoud dat praktijkervaring met het bouwen en beheren van Lambda-applicaties van onschatbare waarde is om deze concepten echt te laten beklijven.
Wil je meer leren? Bekijk dan deze twee cursussen:
Een veelzijdige data scientist die graag zijn kennis deelt en iets terugdoet voor anderen. Zoumana is YouTube-contentmaker en een toonaangevende techschrijver op Medium. Hij haalt plezier uit spreken, coderen en lesgeven. Zoumana heeft twee masterdiploma’s: het eerste in informatica met een focus op machine learning uit Parijs, Frankrijk, en het tweede in data science van Texas Tech University in de VS. Zijn loopbaan begon als softwareontwikkelaar bij Groupe OPEN in Frankrijk. Daarna stapte hij over naar IBM als machine learning-consultant, waar hij end-to-end AI-oplossingen ontwikkelde voor verzekeringsmaatschappijen. Zoumana sloot zich aan bij Axionable, de eerste Sustainable AI-startup met vestigingen in Parijs en Montreal. Daar werkte hij als data scientist en bouwde hij AI-producten—voornamelijk NLP-usecases—voor klanten in Frankrijk, Montreal, Singapore en Zwitserland. Daarnaast wijdde hij 5% van zijn tijd aan research & development. Momenteel werkt hij als senior data scientist bij IFC – the World Bank Group.

