🧭 Einführung
Die Serverless-Architektur überträgt die gesamte Infrastrukturverwaltung an den Cloud-Anbieter, sodass sich Entwickler ausschließlich auf die Geschäftslogik konzentrieren können.\ In dieser Anleitung zeigen wir, wie man eine serverlose Automatisierung plant und umsetzt.
🔧 Voraussetzungen
- Ein AWS-, Azure- oder GCP-Konto\
- Grundkenntnisse in CLI-Befehlen (
aws,az,gcloud)\ - Verständnis von JSON/YAML-Strukturen\
- Ein Texteditor (empfohlen: VS Code)
🧩 Schritt 1: Was ist Serverless-Automatisierung?
Serverless-Automatisierung führt ereignisgesteuerte Aufgaben aus, ohne Server manuell zu verwalten.\ Typische Anwendungsfälle sind: - Zeitgesteuerte Aufgaben (Cron)\
- Dateiverarbeitung nach Upload\
- API-basierte Auslöser\
- Nachrichtenwarteschlangen oder Datenströme
Beispiel
Eine Datei wird in S3 hochgeladen und automatisch per Lambda-Funktion verkleinert.
⚙️ Schritt 2: Architekturplanung
Drei Hauptkomponenten werden definiert: 1. Trigger (Ereignis) -- z. B. S3-Upload, HTTP-Anfrage, Queue\
- Function (Logik) -- z. B. Python- oder Node.js-Code\
- Destination (Ziel) -- z. B. API, Datenbank, E-Mail, Log-System
# Beispiel AWS Lambda (serverless.yml)
functions:
resizeImage:
handler: handler.resize
events:
- s3:
bucket: uploads
event: s3:ObjectCreated:*
🧱 Schritt 3: Umgebung einrichten
AWS Beispiel:
aws configure
aws iam create-role --role-name lambda-basic-execution
aws lambda create-function --function-name AutoResize --runtime python3.11 --role arn:aws:iam:::role/lambda-basic-execution --handler lambda_function.lambda_handler --zip-file fileb://function.zip
Azure Beispiel:
az functionapp create --resource-group myGroup --consumption-plan-location westeurope --runtime python --functions-version 4 --name myServerlessApp --storage-account mystorage
Google Cloud Beispiel:
gcloud functions deploy autoResize --runtime python311 --trigger-resource uploads --trigger-event google.storage.object.finalize
🧠 Schritt 4: Automatisierungsszenario
Szenario: „Sende eine E-Mail-Benachrichtigung, wenn eine Datei hochgeladen wurde."\
- Ereignis: Datei-Upload in den
uploads-Bucket\ - Funktion: Metadaten lesen, E-Mail vorbereiten\
- Ziel: Mail-API (SendGrid / SES)
import boto3
import json
def lambda_handler(event, context):
s3 = boto3.client('s3')
ses = boto3.client('ses')
for record in event['Records']:
file_name = record['s3']['object']['key']
ses.send_email(
Source='notify@hmyn.net',
Destination={'ToAddresses': ['admin@hmyn.net']},
Message={
'Subject': {'Data': f'Neue Datei: {file_name}'},
'Body': {'Text': {'Data': f'{file_name} wurde hochgeladen.'}}
}
)
🧩 Schritt 5: Überwachung und Logging
- Verwende AWS CloudWatch, Azure Monitor oder GCP Logging\
- Aktiviere Benachrichtigungen und Wiederholungen bei Fehlern\
- Integration mit Slack, Telegram oder E-Mail möglich
aws logs tail /aws/lambda/AutoResize --follow
🚀 Schritt 6: CI/CD-Integration
Serverless-Projekte basieren meist auf Git: - Bei jedem Push wird die Funktion automatisch aktualisiert\
- Nutze
serverless.ymloder Pipelines (azure-pipelines.yml, GitHub Actions)\ - Empfohlene Tools: - GitHub Actions\
- AWS SAM CLI\
- Terraform (IaC)
🧩 Schritt 7: Erweiterte Anwendungen
- Multi-Trigger-Workflows über EventBridge oder Pub/Sub
- Zustandsverwaltung mit DynamoDB oder Firestore
- Integration mit n8n, Zapier oder Airflow
🧩 Schritt 8: Kosten- und Leistungsoptimierung
- Unnötige Aufrufe mit Filterung reduzieren\
- Leichte Runtimes (z. B. Go statt Python) bevorzugen\
- Für wiederkehrende Aufgaben Step Functions oder Durable Functions verwenden
✅ Fazit
Serverless-Automatisierung reduziert manuelle Prozesse und spart Ressourcen.\ Nach dieser Anleitung kannst du: - Ereignisgesteuerte Funktionen schreiben\
- Serverless-Anwendungen bereitstellen\
- CI/CD-Pipelines integrieren