Serverloze ontwikkeling met AWS Lambda · Les

AWS Serverless Application Model (SAM)

Leer serverless applicaties te definiëren, ontwikkelen en implementeren met AWS SAM, een open-sourceframework voor bouwen op AWS

Les 1 van 411 stappen

AWS Serverless Application Model (SAM) is een gratis Serverloze ontwikkeling met AWS Lambda-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Serverloze ontwikkeling met AWS Lambda. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Serverloze ontwikkeling met AWS Lambda bevat in totaal 4 lessen.

Serverloos ontwikkelen vereenvoudigen met AWS SAM

AWS Serverless Application Model (SAM) is een open-sourceframework waarmee je eenvoudiger serverloze toepassingen voor AWS bouwt en implementeert.

Het breidt AWS CloudFormation uit met een speciale, eenvoudigere syntaxis voor het definiëren van serverloze resources, zoals Lambda-functies, API Gateways en DynamoDB-tabellen. Met SAM beheer je je volledige serverloze app als één geheel.

SAM-sjabloon: de blauwdruk

De kern van elke SAM-toepassing is het template.yaml-bestand. Dit YAML- (of JSON-)bestand dient als blauwdruk en beschrijft alle serverloze resources waaruit je toepassing bestaat.

SAM-sjablonen zijn in essentie AWS CloudFormation-sjablonen, maar bevatten een belangrijke eigenschap Transform die de vereenvoudigde, specifiek voor serverloze toepassingen bedoelde syntaxis van SAM activeert.

Anatomie van een SAM-sjabloon

Bekijk de belangrijkste secties die je in een template.yaml-bestand aantreft:

  • AWSTemplateFormatVersion: Standaardversie van CloudFormation.
  • Transform: AWS::Serverless-2016-10-31: Dit is essentieel! Hiermee geef je CloudFormation de opdracht de vereenvoudigde syntaxis van SAM te gebruiken.
  • Description: Een korte uitleg van je toepassing.
  • Resources: Hier definieer je alle serverloze onderdelen, zoals Lambda-functies, API's en databases.

Een serverloze functie definiëren

In SAM definieer je een Lambda-functie met het resourcetype AWS::Serverless::Function. Je geeft belangrijke eigenschappen op, zoals de runtime, het ingangspunt (handler), het geheugen en de manier waarop de functie wordt geactiveerd.

  • Type: AWS::Serverless::Function: Identificeert dit als een Lambda-functie.
  • Handler: De functie in je code die AWS Lambda aanroept om de uitvoering te starten (bijvoorbeeld app.lambda_handler).
  • Runtime: De omgeving voor de programmeertaal (bijvoorbeeld python3.9, nodejs16.x).
  • CodeUri: Het lokale pad naar de broncode van je functie.
  • Events: Geeft aan hoe je functie wordt aangeroepen (bijvoorbeeld via een API Gateway-eindpunt).

Onze Lambda-handler voor 'Hello World'

Hier is een eenvoudige Python-Lambda-functie. Dit is de code die wordt uitgevoerd wanneer onze serverloze functie wordt aangeroepen. De functie retourneert alleen het bericht 'Hello from Lambda!'.

import json

def lambda_handler(event, context):
    # Log the event for debugging purposes
    print("Received event: " + json.dumps(event))

    # Basic response for API Gateway
    response = {
        "statusCode": 200,
        "body": json.dumps("Hello from Lambda!")
    }
    return response

SAM-sjabloon voor onze functie

Nu definiëren we onze Lambda-functie voor 'Hello World' in een template.yaml-bestand. We configureren de functie zodat deze wordt geactiveerd door een API Gateway-GET-verzoek op het pad /hello.

In dit sjabloon staat de Python-code (app.py) in een map met de naam hello_world/, naast dit template.yaml-bestand.

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

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 SAM CLI: je implementatietool

De AWS SAM Command Line Interface (CLI) is je belangrijkste tool voor het ontwikkelen en implementeren van SAM-toepassingen. De CLI bevat opdrachten voor het initialiseren van projecten, het bouwen van afhankelijkheden, lokaal testen en het implementeren van je toepassing in AWS.

  • sam init: Start een nieuw serverloos project.
  • sam build: Verpak je toepassingscode en afhankelijkheden.
  • sam deploy: Implementeer je toepassing in AWS CloudFormation.

Je SAM-toepassing bouwen

Voordat je je toepassing kunt implementeren, moet je deze eerst 'bouwen'. De opdracht sam build verzamelt je code, bundelt eventuele afhankelijkheden (zoals Python-pakketten) en bereidt alles voor als een implementeerbaar pakket.

Deze opdracht maakt een map .aws-sam met daarin de verwerkte artefacten.

sam build

Je SAM-toepassing implementeren

Nadat je de toepassing hebt gebouwd, gebruik je sam deploy om deze naar AWS te sturen. Deze opdracht maakt op basis van je SAM-sjabloon een CloudFormation-stack of werkt deze bij en maakt alle benodigde resources aan.

Je moet een unieke stacknaam en een S3-bucket voor codeartefacten opgeven. Met het argument --capabilities CAPABILITY_IAM bevestig je dat je sjabloon IAM-rollen aanmaakt.

sam deploy --stack-name my-hello-app \
           --s3-bucket your-unique-s3-bucket-name \
           --capabilities CAPABILITY_IAM \
           --region us-east-1

Korte controle: onderdelen van een SAM-sjabloon

Welke van de volgende onderdelen of secties zijn essentiële onderdelen van een typisch AWS SAM-sjabloon (template.yaml)?

Samenvatting: je SAM-traject begint

Je hebt zojuist de basisprincipes van AWS SAM geleerd!

  • SAM vereenvoudigt de ontwikkeling en implementatie van serverloze toepassingen met een op CloudFormation gebaseerd sjabloon.
  • Belangrijke onderdelen zijn het template.yaml-bestand met de eigenschap Transform en de sectie Resources.
  • De SAM CLI bevat opdrachten zoals sam init, sam build en sam deploy om je toepassingen te beheren.

Met SAM kun je complexe serverloze architecturen efficiënt definiëren, bouwen en implementeren. Daarmee is het een krachtige tool voor serverloze ontwikkeling.

Gratis beginnen

Leer Serverloze ontwikkeling met AWS 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 “AWS Serverless Application Model (SAM)” gratis?

Ja — de volledige tekst van “AWS Serverless Application Model (SAM)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Serverloze ontwikkeling met AWS Lambda wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Serverloze ontwikkeling met AWS Lambda bevat in totaal 4 lessen.

Wat leer ik in “AWS Serverless Application Model (SAM)”?

Leer serverless applicaties te definiëren, ontwikkelen en implementeren met AWS SAM, een open-sourceframework voor bouwen op AWS Je oefent met Serverloze ontwikkeling met AWS 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 Serverloze ontwikkeling met AWS Lambda te beginnen?

Ervaring vooraf is niet nodig. Serverloze ontwikkeling met AWS 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 1 van 4.

Hoe lang duurt de les “AWS 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 Serverloze ontwikkeling met AWS Lambda?

Ja. Elke les over Serverloze ontwikkeling met AWS 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. AWS Serverless Application Model (SAM)
  2. Kennismaking met Serverless Framework
  3. CI/CD voor serverless apps
  4. Lokaal testen met SAM CLI
← Terug naar Serverloze ontwikkeling met AWS Lambda