Serverlose Funktion
Eine serverlose Funktion ist Code, den ein Cloud-Anbieter bei Bedarf ausführt, abgerechnet pro Aufruf. Ablauf, Cold Starts, Lambda-Limits, Tests.
Was ist eine serverlose Funktion?
Eine serverlose Funktion ist ein kleines Stück Code, das ein Cloud-Anbieter bei Bedarf als Reaktion auf ein Ereignis ausführt, etwa eine HTTP-Anfrage, einen Datei-Upload oder eine Queue-Nachricht. Sie liefern den Code; der Anbieter stellt Server bereit, skaliert und patcht sie, und Sie zahlen für die Ausführung statt für ungenutzte Maschinen. AWS Lambda dient auf dieser Seite als Beispiel.
So funktioniert eine serverlose Funktion
Sie schreiben einen Handler und verbinden ihn mit einem Auslöser. Kommt ein Ereignis, braucht die Plattform eine Ausführungsumgebung. Ist eine bereite frei, wird sie wiederverwendet (Warm Start). Sonst wird eine neue erstellt: Der Code wird geladen, die Laufzeit gestartet und Ihr Initialisierungscode ausgeführt, erst dann wird der Handler aufgerufen (Cold Start). Standardmäßig bearbeitet jede Umgebung eine Anfrage gleichzeitig, mehr parallele Anfragen bedeuten also mehr Umgebungen.
AWS definiert Concurrency als gleichzeitig laufende Anfragen und nennt eine einfache Formel: Concurrency = durchschnittliche Anfragen pro Sekunde x durchschnittliche Dauer in Sekunden. Bei 100 Anfragen pro Sekunde und 500 ms je Anfrage sind das 50 Umgebungen.
Beispiel
Ein Shop legt Produktfotos in einem Bucket ab. Jeder Upload löst eine Funktion aus, die ein Vorschaubild erzeugt und zurückschreibt. Es muss kein Server dauerhaft laufen: Bei einem Massenimport laufen Hunderte Funktionen parallel, nachts keine. Eine zweite Funktion hinter einem API-Endpunkt könnte den Produktkatalog für die Website liefern.
Wichtige Limits (AWS Lambda)
- Timeout: bis zu 900 Sekunden (15 Minuten) pro Aufruf. Längere Jobs müssen aufgeteilt oder anderswo ausgeführt werden.
- Arbeitsspeicher: 128 MB bis 10.240 MB, die CPU wird proportional zugeteilt.
- Concurrency: standardmäßig 1.000 gleichzeitige Ausführungen pro Region (anpassbares Kontingent), geteilt von allen Funktionen des Kontos.
- Skalierungsrate: Jede Funktion kann höchstens 1.000 Ausführungsumgebungen alle 10 Sekunden hinzufügen, ein sehr plötzlicher Ansturm kann also gedrosselt werden.
- Nutzlast: 6 MB für eine synchrone Anfrage oder Antwort.
- Cold Starts: Laut AWS betreffen sie typischerweise unter 1 % der Aufrufe und kosten von unter 100 ms bis über 1 Sekunde. Provisioned Concurrency initialisiert Umgebungen vorab und reduziert sie.
Limits und Standardwerte ändern sich, prüfen Sie daher die aktuelle AWS-Lambda-Kontingentseite, bevor Sie etwas dimensionieren.
Häufige Fehler
- Grenzenlose Skalierung annehmen. Die Funktion skaliert vielleicht, aber Datenbank, Drittanbieter-API oder Microservice dahinter oft nicht. Ein Schwarm von Funktionen kann Datenbankverbindungen erschöpfen.
- Geschwindigkeit am Mittelwert messen. Cold Starts liegen im oberen Rand. Betrachten Sie p95 und p99, siehe Latenz.
- Lange Jobs in eine Funktion packen. Alles nahe am Timeout gehört in eine Queue oder einen anderen Dienst.
- Nie einen Ansturm testen. Eine Funktion, die bei 10 Anfragen pro Sekunde problemlos läuft, kann bei einem Sprung drosseln; ein Spike-Test deckt das auf.
- Von Hand konfigurieren. Speicher, Timeout und Concurrency gehören in Code, siehe Infrastructure as Code.
Serverlose Funktionen testen und überwachen
Testen Sie den öffentlichen Endpunkt vor der Funktion, meist ein API-Gateway, mit einem Profil, das über die erwartete Spitze hinausgeht, und vergleichen Sie Perzentile, Fehlerraten und Drosselung. LoadFocus Load Testing kann diesen Traffic mit JMeter oder k6 aus 25 Cloud-Regionen senden; der Free-Tarif deckt 10 virtuelle Nutzer für 60 Sekunden ab. Bedenken Sie, dass jeder Testaufruf von Ihrem Cloud-Anbieter berechnet wird. Die vollständige Methode steht in Performance Testing serverloser Architekturen (englisch). In Produktion zeigt API-Monitoring wie LoadFocus API Monitoring (kostenlose Checks laufen alle 5 Minuten), wie sich diese Endpunkte über die Zeit verhalten, auch der gelegentliche langsame erste Aufruf.
Häufige Fragen
Sind serverlose Funktionen wirklich serverlos?
Nein. Server führen Ihren Code weiterhin aus. Der Begriff bedeutet, dass Sie sie nicht selbst bereitstellen, patchen oder skalieren.
Was ist ein Cold Start?
Die zusätzliche Zeit, wenn die Plattform erst eine neue Ausführungsumgebung erstellen muss, bevor sie Ihren Handler ausführen kann. Spätere Anfragen, die die Umgebung wiederverwenden, sparen sie.
Wie wird eine serverlose Funktion abgerechnet?
Bei AWS-Lambda-Event-Funktionen pro Anfrage plus Ausführungszeit mal konfiguriertem Speicher (GB-Sekunden). Ohne Anfragen zahlen Sie nichts für Rechenzeit.
Wann sollte ich keine serverlose Funktion verwenden?
Für Jobs, die länger als das Timeout dauern, für Workloads mit dauerhaft sehr niedriger Latenz bei jeder Anfrage oder bei so konstantem, hohem Traffic, dass dauerhaft laufende Server günstiger sind. Messen Sie, bevor Sie entscheiden.
Verwandte Begriffe
- Was ist Vite?
- Was ist ein Webhook? Definition, Sicherheit und Retries
- Asynchrones Laden: async vs. defer und Performance
- Was ist Continuous Delivery (CD)?
- Was ist Edge Computing?
- Was ist Expo? React-Native-Framework, EAS Build und Updates
- Hot Module Replacement (HMR): So funktioniert es
- Incremental Static Regeneration (ISR)
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um, derselben Plattform, die alles antreibt, was du gerade gelesen hast.