AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) · Les

Uw eerste Lambda-functie bouwen

Schrijf en implementeer een eenvoudige Lambda-functie en configureer de runtime, het geheugen en de uitvoeringsrol.

Les 2 van 411 stappen

Uw eerste Lambda-functie bouwen is een gratis AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda)-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) bevat in totaal 4 lessen.

Je eerste Lambda-functie

Tijd om je eerste serverless-functie te bouwen! In deze les schrijven we een eenvoudige AWS Lambda-functie die je code uitvoert zonder dat je servers hoeft te beheren.

We behandelen de basisstructuur, hoe je een uitvoeringsomgeving kiest en essentiële configuraties zoals geheugen en uitvoeringsrollen. Maak je klaar om te implementeren!

De kern: je Lambda-handler

Elke Lambda-functie heeft een functie met de naam 'handler' nodig. Dit is het toegangspunt waar AWS Lambda begint met het uitvoeren van je code. De functie ontvangt meestal twee argumenten:

  • event: Bevat de gegevens die de aanroep hebben geactiveerd.
  • context: Biedt runtime-informatie over de aanroep, de functie en de uitvoeringsomgeving.

Zie de handler als de 'main'-methode voor je serverless-code.

Kies je taal: Lambda-runtimes

AWS Lambda ondersteunt veel programmeertalen, die 'runtimes' worden genoemd. Je kiest de runtime waarin de code van je functie is geschreven. De runtime bepaalt de uitvoeringsomgeving en hoe je handler wordt aangeroepen.

  • Python: Ideaal voor scripts, gegevensverwerking en machinelearning.
  • Node.js: Ideaal voor realtime toepassingen, API's en microservices.
  • Java: Geschikt voor bedrijfstoepassingen, hoge prestaties en bestaande JVM-ecosystemen.
  • Go, C#, Ruby, aangepaste runtimes: Meer opties voor uiteenlopende behoeften en specifieke toepassingen.

Hallo Lambda: een eenvoudig Python-voorbeeld

We schrijven een heel eenvoudige Python-Lambda-functie. Deze functie ontvangt een naam als invoer uit event en retourneert een begroeting. Probeer de functie uit te voeren om de uitvoer te bekijken!

import json

def lambda_handler(event, context):
    # event is a dictionary containing invocation data
    # context provides runtime info (e.g., function name, memory limit)

    # We expect 'name' in the event payload
    name = event.get('name', 'World')
    message = f"Hello, {name}!"

    # Lambda functions often return a dictionary, which AWS converts to JSON
    return {
        'statusCode': 200,
        'body': json.dumps(message)
    }

# --- Local Test Simulation ---
if __name__ == "__main__":
    # Simulate an event payload
    test_event = {"name": "CoddyKit User"}
    
    # Simulate a dummy context object
    class Context:
        def __init__(self):
            self.function_name = "my-test-function"
            self.memory_limit_in_mb = 128
            self.invoked_function_arn = "arn:aws:lambda:us-east-1:123456789012:function:my-test-function"
            self.aws_request_id = "test-request-id-123"

    test_context = Context()

    # Call the handler
    response = lambda_handler(test_event, test_context)
    
    # Print the response for local verification
    print(f"Status Code: {response['statusCode']}")
    print(f"Body: {json.loads(response['body'])}")

    # Test without a name
    test_event_no_name = {}
    response_no_name = lambda_handler(test_event_no_name, test_context)
    print(f"\nStatus Code (no name): {response_no_name['statusCode']}")
    print(f"Body (no name): {json.loads(response_no_name['body'])}")

De invoer van je functie: de gebeurtenis

Het object event is een Python-woordenboek (of een JSON-object in andere runtimes) dat de gegevens bevat die aan je functie zijn doorgegeven. Deze gegevens zijn afkomstig van de service die je Lambda-functie heeft geactiveerd.

  • Bij activering door een API Gateway: bevat het de HTTP-methode, headers en body.
  • Bij activering door S3: bevat het informatie over de S3-bucket en het object.
  • Bij een rechtstreekse aanroep: bevat het de JSON-lading die je hebt doorgegeven.

Je functie verwerkt deze invoer om de taak uit te voeren.

Runtimegegevens: de context

Het object context bevat informatie over de aanroep, de functie en de uitvoeringsomgeving. Het is nuttig voor logboekregistratie en het nemen van beslissingen tijdens runtime.

  • function_name: De naam van je Lambda-functie.
  • aws_request_id: Een unieke ID voor de aanroep.
  • memory_limit_in_mb: Het geheugen dat aan de functie is toegewezen.
  • get_remaining_time_in_millis(): De resterende tijd voordat de functie de time-out bereikt.

Je kunt dit gebruiken voor geavanceerde foutafhandeling of logboekregistratie binnen je functie.

Machtigingen met IAM-uitvoeringsrollen

Een Lambda-functie heeft toestemming nodig om met andere AWS-services te communiceren. Dit wordt beheerd door een IAM-rol, die specifiek de "uitvoeringsrol" wordt genoemd.

  • De rol bepaalt welke acties je Lambda kan uitvoeren (bijvoorbeeld logboeken naar CloudWatch schrijven en uit S3 lezen).
  • Je koppelt beleidsregels aan deze rol om machtigingen op te geven.
  • Zonder de juiste machtigingen mislukt je functie wanneer deze toegang probeert te krijgen tot andere AWS-resources.

Volg altijd het principe van minimale machtigingen en verleen alleen de noodzakelijke machtigingen.

Fijnafstemming: geheugen en time-out

Wanneer je een Lambda-functie maakt, configureer je verschillende instellingen die de prestaties en kosten beïnvloeden:

  • Geheugen: Bepaalt hoeveel RAM wordt toegewezen (bijvoorbeeld 128 MB tot 10 GB). Meer geheugen betekent vaak ook meer CPU-capaciteit.
  • Time-out: De maximale tijd dat je functie mag uitvoeren (bijvoorbeeld 3 seconden tot 15 minuten). Als deze tijd wordt overschreden, stopt Lambda de functie.
  • Omgevingsvariabelen: Sleutel-waardeparen die toegankelijk zijn voor je code. Ze zijn handig voor configuratie zonder dat je de code hoeft te wijzigen.

Het kiezen van geschikte instellingen is essentieel voor efficiëntie en kostenoptimalisatie.

Je functie beschikbaar maken

Als je code klaar is, implementeer je deze in AWS Lambda. Dit is in grote lijnen de werkwijze:

  1. Je code verpakken: Zip je code en eventuele afhankelijkheden in een implementatiepakket.
  2. Uploaden: Gebruik de AWS Console, AWS CLI of een hulpprogramma voor Infrastructure as Code (IaC), zoals AWS SAM of CloudFormation.
  3. Testen: Roep je functie rechtstreeks aan vanuit de Lambda-console met testgebeurtenissen, of activeer deze via een geïntegreerde service zoals API Gateway of S3.

De console biedt een snelle manier om aan de slag te gaan en je functie meteen te testen.

Korte controle: Lambda-handler

Bekijk de basisstructuur van een Python-Lambda-handler:

def lambda_handler(event, context):
    # ... your code ...
    return response

Wat is het belangrijkste doel van de parameter event?

Samenvatting: je eerste serverless-stap

Goed gedaan! Je hebt de basis geleerd van het bouwen van een Lambda-functie:

  • Elke Lambda-functie heeft een handler-functie als toegangspunt.
  • Je kiest een runtime (zoals Python) voor je code.
  • Het object event bevat invoergegevens en context biedt runtime-informatie.
  • Een IAM-uitvoeringsrol verleent je functie de benodigde machtigingen.
  • Je configureert instellingen zoals geheugen en time-out voor prestaties en kosten.

Dit is je basis voor het bouwen van krachtige serverless-toepassingen!

Gratis beginnen

Leer AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Uw eerste Lambda-functie bouwen” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda), waaronder “Uw eerste Lambda-functie bouwen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) bevat in totaal 4 lessen.

Wat leer ik in “Uw eerste Lambda-functie bouwen”?

Schrijf en implementeer een eenvoudige Lambda-functie en configureer de runtime, het geheugen en de uitvoeringsrol. Je oefent met AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) te beginnen?

Ervaring vooraf is niet nodig. AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Uw eerste Lambda-functie bouwen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda)?

Ja. Elke les over AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Wat is AWS Lambda?
  2. Uw eerste Lambda-functie bouwen
  3. Lambda-triggers en integraties
  4. Lambda-functies monitoren en debuggen
← Terug naar AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda)