AWS Serverless Application Model (SAM)
Leer serverless applicaties te definiëren, ontwikkelen en implementeren met AWS SAM, een open-sourceframework voor bouwen op AWS
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 (bijvoorbeeldapp.lambda_handler).Runtime: De omgeving voor de programmeertaal (bijvoorbeeldpython3.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 responseSAM-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: GETDe 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 buildJe 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-1Korte 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 eigenschapTransformen de sectieResources. - De SAM CLI bevat opdrachten zoals
sam init,sam buildensam deployom 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.
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
- AWS Serverless Application Model (SAM)
- Kennismaking met Serverless Framework
- CI/CD voor serverless apps
- Lokaal testen met SAM CLI