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

Serverless Application Model (SAM)

Definieer, ontwikkel en implementeer serverless applicaties met het AWS Serverless Application Model (SAM)-framework.

Les 3 van 412 stappen

Serverless Application Model (SAM) is een gratis AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda)-les op CoddyKit. Dit is les 3 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.

Wat is AWS SAM?

Welkom bij het AWS Serverless Application Model (SAM). SAM is een opensourceframework waarmee je sneller en eenvoudiger serverloze toepassingen op AWS kunt bouwen, testen en implementeren.

Je kunt het zien als een vereenvoudigde manier om je serverloze resources te definiëren, zoals Lambda-functies en API Gateway-eindpunten.

SAM: de hulp van CloudFormation

In de kern is SAM een uitbreiding van AWS CloudFormation. Het biedt een verkorte syntaxis voor veelgebruikte serverloze onderdelen.

Wanneer je een SAM-toepassing implementeert, zet SAM je vereenvoudigde sjabloon om in een volledige AWS CloudFormation-sjabloon. Zo profiteer je van alle mogelijkheden van de robuuste implementatiefuncties van CloudFormation.

Structuur van een SAM-sjabloon

SAM-toepassingen worden gedefinieerd in een SAM-sjabloon, meestal een YAML-bestand met de naam template.yaml. Belangrijke secties zijn:

  • AWSTemplateFormatVersion: Standaardversie van CloudFormation.
  • Transform: AWS::Serverless-2016-10-31: Deze regel vertelt CloudFormation de sjabloon met SAM te verwerken.
  • Resources: Hier definieer je je serverloze onderdelen (functies, API's en databases).

Een serverloze functie definiëren

De belangrijkste resource voor een Lambda-functie in SAM is AWS::Serverless::Function. Deze resource vereenvoudigt het definiëren van een Lambda-functie en de bijbehorende configuratie.

Je geeft eigenschappen op zoals Handler (het toegangspunt van de functie), Runtime (bijvoorbeeld python3.9) en CodeUri (het pad naar de code van je functie).

Integreren met API Gateway

Om je Lambda-functie via een HTTP-eindpunt beschikbaar te maken, kun je rechtstreeks Events definiëren binnen je resource AWS::Serverless::Function.

Als je het gebeurtenistype Api gebruikt, wordt automatisch een Amazon API Gateway-eindpunt ingericht. Je geeft het Path en de Method voor je API-route op.

Je eerste SAM-sjabloon

Hier zie je een eenvoudige template.yaml waarin een Python-Lambda-functie wordt gedefinieerd die wordt geactiveerd door een API Gateway GET-verzoek op het pad /hello.

CodeUri: hello_world/ geeft aan dat de Lambda-code zich in een lokale map met de naam hello_world bevindt.

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A simple "Hello World" SAM app.

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: app.lambda_handler
      Runtime: python3.9
      CodeUri: hello_world/
      MemorySize: 128
      Timeout: 30
      Events:
        HelloWorldApi:
          Type: Api
          Properties:
            Path: /hello
            Method: GET

De code van de Lambda-functie

Dit is de Python-code (app.py) die zich in de map hello_world/ bevindt. Deze functie wordt uitgevoerd wanneer het API Gateway-eindpunt wordt aangeroepen.

De functie retourneert eenvoudig een JSON-antwoord met het bericht "Hello from SAM Lambda!".

import json

def lambda_handler(event, context):
    """
    Handles API Gateway requests and returns a simple greeting.
    """
    print("Received an event:", event) # For logging
    return {
        "statusCode": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "body": json.dumps({
            "message": "Hello from SAM Lambda!"
        }),
    }

# Example local invocation (for direct script testing)
if __name__ == "__main__":
    test_event = {
        "httpMethod": "GET",
        "path": "/hello",
        "requestContext": {"requestId": "test-id-123"},
        "headers": {"User-Agent": "test-client"}
    }
    response = lambda_handler(test_event, None)
    print("Local Response:", response)

Je SAM-toepassing bouwen

Voordat je je toepassing kunt implementeren of zelfs lokaal kunt testen, moet je deze bouwen. De opdracht sam build verwerkt je sjabloon, verzamelt afhankelijkheden en bereidt je code voor op implementatie.

De opdracht maakt een map .aws-sam/build met de verwerkte artefacten.

sam build

Lokaal testen met SAM CLI

De SAM CLI biedt krachtige hulpmiddelen voor lokaal testen. Zo bespaar je tijd en geld doordat je herhaalde implementaties naar AWS vermijdt.

  • sam local invoke: Roept lokaal één Lambda-functie aan met een opgegeven gebeurtenis.
  • sam local start-api: Start een lokale HTTP-server die API Gateway nabootst, zodat je vanuit je browser of met curl met je serverloze API kunt werken.

sam local start-api

Je serverloze app implementeren

Zodra je toepassing lokaal is gebouwd en getest, kun je deze met de opdracht sam deploy naar AWS implementeren.

De eerste keer dat je implementeert, wordt aanbevolen de vlag --guided te gebruiken. Hiermee krijg je interactieve prompts om instellingen te configureren, zoals de naam van de stack, de AWS-regio en de S3-bucket voor implementatieartefacten.

sam deploy --guided

Korte controle van SAM CLI

Welke opdracht van SAM CLI gebruik je om je serverloze API Gateway lokaal te testen, zodat je er vanuit je browser of met curl mee kunt werken?

Samenvatting en volgende stappen

Gefeliciteerd. Je hebt de basisbeginselen van het AWS Serverless Application Model (SAM) geleerd.

  • SAM vereenvoudigt serverloze ontwikkeling door CloudFormation uit te breiden.
  • Je kunt Lambda-functies en API Gateway-eindpunten eenvoudig definiëren in een template.yaml.
  • Met de SAM CLI kun je je serverloze toepassingen efficiënt builden, locally testen en deployen.

SAM is een krachtig hulpmiddel voor het ontwikkelen van moderne, gebeurtenisgestuurde toepassingen op AWS.

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 “Serverless Application Model (SAM)” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda), waaronder “Serverless Application Model (SAM)”, 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 “Serverless Application Model (SAM)”?

Definieer, ontwikkel en implementeer serverless applicaties met het AWS Serverless Application Model (SAM)-framework. 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 3 van 4.

Hoe lang duurt de les “Serverless Application Model (SAM)”?

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. Basisprincipes van CodeCommit en CodeBuild
  2. CodeDeploy voor EC2/Lambda
  3. Serverless Application Model (SAM)
  4. Infrastructure as Code met CloudFormation
← Terug naar AWS voor backendontwikkelaars (EC2, S3, RDS, Lambda)