Lambda-Funktionen konfigurieren

Serverlose Anwendungen mit AWS Lambda

Claudio Canales

Senior DevOps Engineer

Warum Konfiguration zählt

  • Gleicher Code kann mit anderen Einstellungen ganz anders laufen.
  • Konfiguration steuert Performance, Kosten und Sicherheit.
  • Ziel: vorhersagbares Verhalten in Dev und Prod.

Gleicher Code, andere Einstellungen

Serverlose Anwendungen mit AWS Lambda

Code vs. Konfiguration

Code-Paket

  • Code-Paket
  • Handler-Logik + Abhängigkeiten.
  • Änderungen erfordern ein Deployment.

Funktionskonfiguration

  • Funktionskonfiguration
  • Speicher, Timeout, Umgebungsvariablen.
  • Ausführungsrolle + Layer.
Serverlose Anwendungen mit AWS Lambda

Die Stellschrauben

  • Runtime + Handler: welcher Code in Lambda läuft.
  • Speicher + Timeout: Performance, Kosten, Sicherheit.
  • Umgebungsvariablen: Konfiguration ohne Hardcoding.
  • Ausführungsrolle: Berechtigungen für AWS-APIs.
  • Layer: gemeinsame Abhängigkeiten über Funktionen.

Lambda-Konfigurationsregler

Serverlose Anwendungen mit AWS Lambda

Grundlagen von Runtime und Handler

  • Runtime = Sprachumgebung (z. B. Python).
  • Handler = Einstiegspunkt, den Lambda aufruft.
  • Handler-Format: file.function.
  • Beispiel: lambda_function.lambda_handler.

Aufschlüsselung der Handler-Zeichenkette

Serverlose Anwendungen mit AWS Lambda

Handler-String: was schiefgehen kann

# lambda_function.py
def lambda_handler(event, context):
    return {"statusCode": 200}

Import, dann Handler-Aufruf

Serverlose Anwendungen mit AWS Lambda

Die Ausführungsrolle (IAM)

  • IAM = Identity and Access Management (Berechtigungen).
  • Die Ausführungsrolle bestimmt, was deine Funktion darf.
  • Sie steuert, welche AWS-APIs dein Code aufrufen kann.

Ausführungsrolle als Schlüsselkarte

Serverlose Anwendungen mit AWS Lambda

Was ist ein Lambda-Layer?

  • Ein Layer ist ein ZIP, das du an eine Funktion anhängst.
  • Lambda stellt Layer-Dateien zur Laufzeit unter /opt bereit.
  • Nutze Layer für geteilte Libraries und Utilities.
  • Einmal Layer updaten; mehrere Funktionen nutzen ihn wieder.

Layer unter /opt eingehängt

Serverlose Anwendungen mit AWS Lambda

Wo Layer zur Laufzeit erscheinen

  • Dein Funktionscode liegt unter /var/task.
  • Deine angehängten Layer liegen unter /opt.
  • Lambda stellt außerdem /tmp als temporären Ordner bereit.

Laufzeitordner: /var/task, /opt, /tmp

Serverlose Anwendungen mit AWS Lambda

Speicher beeinflusst auch CPU

  • Mehr Speicher -> mehr CPU.
  • Kann Laufzeit bei CPU-lastigen Tasks senken.
  • Gesamtkosten hängen von Dauer und Speicher ab.

Mehr Speicher erhöht CPU

Serverlose Anwendungen mit AWS Lambda

Speicher mit Messungen tunen

  • Starte mit einem sinnvollen Default (z. B. 256 MB).
  • Teste mit realistischen Events.
  • Vergleiche Dauer und Kosten über Speicherkonfigurationen.

Memory-Sweep: Dauer und Kosten messen

Serverlose Anwendungen mit AWS Lambda

Timeouts und sicheres Ausführen

  • Timeout stoppt ausufernde Ausführungen.
  • Vor langem Workload Restzeit prüfen.
  • Schnell fehlschlagen und ggf. neu versuchen.

Timeout als Sicherheitstimer

Serverlose Anwendungen mit AWS Lambda

Walkthrough: Restzeit prüfen

def lambda_handler(event, context):
    time_left = context.get_remaining_time_in_millis()
    if time_left < 500:
        raise TimeoutError("Not enough time left")
    return {"statusCode": 200}

Context-Countdown-Guard

Serverlose Anwendungen mit AWS Lambda

Umgebungsvariablen

  • Konfiguration aus dem Code halten.
  • Dev/Test/Prod getrennt konfigurieren.
  • Für sensible Werte Secrets Manager nutzen.

Umgebungsvariablen steuern Verhalten

Serverlose Anwendungen mit AWS Lambda

Walkthrough: Umgebungsvariablen lesen

import os

STAGE = os.getenv("STAGE", "dev")
LOG_LEVEL = os.getenv(
    "LOG_LEVEL", "INFO"
)

Defaults machen lokale Tests sicherer

  • os importieren, um Umgebungsvariablen zu lesen.
  • os.getenv liefert Wert oder Default.
Serverlose Anwendungen mit AWS Lambda

Häufige Konfigurationsfallen

  • Stage-Werte hart im Code verdrahten.
  • Timeout zu niedrig oder IAM-Berechtigungen fehlen.
  • Secrets als Klartext in Umgebungsvariablen.

Fallstricke und Faustregeln

Serverlose Anwendungen mit AWS Lambda

Lass uns üben!

Serverlose Anwendungen mit AWS Lambda

Preparing Video For Download...