AWS Lambda

Amazon Web Service für serverlose Datenverarbeitung

| Autor / Redakteur: Sascha Möllering * / Stephan Augsten

AWS Lambda ist ein serverloser Datenverarbeitungsservice, der Code beim Eintreten bestimmter Ereignisse ausführt und automatisch verwaltet.
AWS Lambda ist ein serverloser Datenverarbeitungsservice, der Code beim Eintreten bestimmter Ereignisse ausführt und automatisch verwaltet. (Bild: Amazon Web Services)

„Wir würden gerne AWS Lambda nutzen, um bestehende Anwendungen ohne eigens verwaltete Server zu implementieren. Welche Empfehlungen und Entwurfsmuster existieren für AWS Lambda?“

AWS Lambda ist ein serverloser Datenverarbeitungsservice, der Code beim Eintreten bestimmter Ereignisse ausführt und automatisch für die zugrundeliegenden Datenverarbeitungsressourcen verwaltet. Lambda-Funktionen werden in einem Container (also in einer Sandbox) ausgeführt, der sie von anderen Funktionen isoliert und Ressourcen wie Speicher bereitstellt.

Eines der wesentlichen Merkmale ist, dass die Lambda-Funktionen zustandslos implementiert werden müssen. Nach der Ausführung einer Funktion ist der Zustand nicht mehr verfügbar. Falls es notwendig ist, einen Applikationszustand zu halten (wie der Warenkorb eines E-Commerce-Systems), muss dieser in externen Systemen wie beispielsweise Amazon DynamoDB gehalten werden.

Jede Lambda-Funktion hat eine sogenannte „Cold Start“-Phase, also einen gewissen Zeitraum, in dem eine Initialisierung der Lambda-Funktion durchgeführt wird. Dazu gehört beispielsweise auch die Verbindung zu einer Datenbank. Nach der Ausführung einer Lambda-Funktion wird der Container von der darunterliegenden Infrastruktur nach einer gewissen Zeit wieder entfernt.

Beim nächsten Aufruf würde demnach erneut ein Cold Start der Funktion auftreten. Um das zu verhindern, kann mithilfe von „Amazon CloudWatch Events“ eine Lambda-Funktion in regelmäßigen Abständen aufgerufen werden.

Jede Lambda-Funktion besitzt einen Handler als Einstiegspunkt für Events. Datenbankverbindungen und AWS-Clients sollten außerhalb dieses Handlers erzeugt werden, damit die Verbindung nicht bei jedem Event-Aufruf aufgebaut werden muss. Ein Beispiel für dieses Pattern ist folgende Lambda-Funktion, die außerhalb des Handlers die Verbindung zu einer DynamoDB-Tabelle aufbaut:

var aws = require('aws-sdk');
var ddb = new aws.DynamoDB(
  {endpoint: "https://dynamodb.eu-west-1.amazonaws.com/",
  params: {TableName: "messages"}});

exports.handler = function(event, context) {
  var tableName = " messages";
  ddb.scan({
    TableName : tableName,
    Limit : 10
  });
};

AWS Lambda bietet unter dem Ordner /tmp 512 Megabyte temporären Speicher, der für Dateisystemoperationen genutzt werden kann. Ein typischer Einsatzzweck ist beispielsweise die Konvertierung von kurzen Videos mit FFmpeg.

Sascha Möllering
Sascha Möllering (Bild: AWS Germany GmbH)

Es kann nicht davon ausgegangen werden, dass der Zustand im temporären Dateisystem über die Ausführungszeit der Lambda-Funktion hinaus erhalten bleibt. Die Dateien, die durch Applikationen wie FFmpeg entstehen, müssen demzufolge nach der Erzeugung zur persistenten Speicherung in einem Service wie Amazon S3 abgelegt werden.

* Sascha Möllering arbeitet als Solutions Architect bei der Amazon Web Services Germany GmbH. Seine Interessen liegen in den Bereichen Automation, Infrastructure as Code, Distributed Computing, Container und JVM.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44599374 / Tipps und Tricks mit AWS)