Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Grundlegende Lambda-Konzepte verstehen

Fokusmodus
Grundlegende Lambda-Konzepte verstehen - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Da Lambda ein serverloser, ereignisgesteuerter Rechendienst ist, verwendet er ein anderes Programmierparadigma als herkömmliche Webanwendungen. Wenn Sie mit Lambda oder serverloser Entwicklung noch nicht vertraut sind, werden in den folgenden Abschnitten einige wichtige grundlegende Konzepte beschrieben, die Ihnen den Einstieg in Ihren Lernpfad erleichtern sollen. Neben einer Erläuterung der einzelnen Konzepte enthalten die Abschnitte auch Links zu Tutorials, ausführlicher Dokumentation und anderen Ressourcen, mit denen Sie Ihr Verständnis zu den einzelnen Themen erweitern können.

Auf dieser Seite erfahren Sie mehr über Folgendes:

  • Lambda-Funktionen — die grundlegenden Bausteine von Lambda, die Sie zum Erstellen von Anwendungen verwenden

  • Lambda-Laufzeiten — die sprachspezifischen Umgebungen, in denen Ihre Funktionen ausgeführt werden

  • Trigger und Zuordnungen von Ereignisquellen — Möglichkeiten für andere, Ihre Funktionen als Reaktion AWS-Services auf bestimmte Ereignisse aufzurufen

  • Das Event-Objekt — ein JSON-Objekt, das Ereignisdaten enthält, die Ihre Funktion verarbeiten kann

  • Lambda-Berechtigungen — die Art und Weise, wie Sie kontrollieren, mit welchen anderen AWS-Services Funktionen Sie interagieren können und wer auf Ihre Funktionen zugreifen kann

Tipp

Weitere Informationen zur serverlosen Entwicklung finden Sie im Serverless Developer Guide unter Grundlegendes zum Unterschied zwischen herkömmlicher und serverloser Entwicklung.AWS

Lambda-Funktionen

In Lambda sind Funktionen die grundlegenden Bausteine, mit denen Sie Anwendungen erstellen. Eine Lambda-Funktion ist ein Code, der als Reaktion auf Ereignisse ausgeführt wird, z. B. wenn ein Benutzer auf eine Schaltfläche auf einer Website klickt oder eine Datei in einen Amazon Simple Storage Service (Amazon S3) -Bucket hochgeladen wird. Sie können sich eine Funktion als eine Art eigenständiges Programm mit den folgenden Eigenschaften vorstellen.

  • Eine Funktion hat eine bestimmte Aufgabe oder einen bestimmten Zweck

  • Sie werden nur ausgeführt, wenn sie als Reaktion auf bestimmte Ereignisse benötigt werden

  • Sie hören automatisch auf zu laufen, wenn sie fertig sind

Wenn eine Funktion als Reaktion auf ein Ereignis ausgeführt wird, führt Lambda die Handler-Funktion der Funktion aus. Daten über das Ereignis, das die Ausführung der Funktion verursacht hat, werden direkt an den Handler übergeben. Während der Code in einer Lambda-Funktion mehr als eine Methode oder Funktion enthalten kann, können Lambda-Funktionen nur einen Handler haben.

Um eine Lambda-Funktion zu erstellen, bündeln Sie Ihren Funktionscode und seine Abhängigkeiten in einem Bereitstellungspaket. Lambda unterstützt zwei Arten von Bereitstellungspaketen: ZIP-Dateiarchive und Container-Images.

Um die Lambda-Funktionen besser zu verstehen, empfehlen wir Ihnen, zunächst das Erstellen Sie Ihre erste Lambda-Funktion Tutorial abzuschließen, falls Sie dies noch nicht getan haben. Dieses Tutorial enthält weitere Informationen zur Handler-Funktion und zum Ein- und Ausleiten von Daten in Ihre Funktion. Es bietet auch eine Einführung in die Erstellung von Funktionsprotokollen.

Lambda-Ausführungsumgebung und Laufzeiten

Lambda-Funktionen werden in einer sicheren, isolierten Ausführungsumgebung ausgeführt, die Lambda für Sie verwaltet. Diese Ausführungsumgebung verwaltet die Prozesse und Ressourcen, die für die Ausführung Ihrer Funktion erforderlich sind. Wenn eine Funktion zum ersten Mal aufgerufen wird, erstellt Lambda eine neue Ausführungsumgebung, in der die Funktion ausgeführt werden kann. Nachdem die Funktion vollständig ausgeführt wurde, stoppt Lambda die Ausführungsumgebung nicht sofort. Wenn die Funktion erneut aufgerufen wird, kann Lambda die bestehende Ausführungsumgebung wiederverwenden.

Die Lambda-Ausführungsumgebung enthält auch eine Runtime, eine sprachspezifische Umgebung, die Ereignisinformationen und Antworten zwischen Lambda und Ihrer Funktion weiterleitet. Lambda bietet eine Reihe von verwalteten Laufzeiten für die gängigsten Programmiersprachen, oder Sie können Ihre eigenen erstellen.

Bei verwalteten Laufzeiten wendet Lambda automatisch Sicherheitsupdates und Patches auf Funktionen an, die die Laufzeit verwenden.

Zuordnungen von Triggern und Ereignisquellen

Obwohl Sie eine Lambda-Funktion manuell mit AWS Command Line Interface (AWS CLI) oder mithilfe der Lambda-API aufrufen können, ist es in einer Produktionsanwendung üblicher, dass Ihre Funktion als Reaktion auf ein bestimmtes Ereignis von einer anderen AWS-Service aufgerufen wird. Sie möchten beispielsweise, dass eine Funktion immer dann ausgeführt wird, wenn ein Element zu einer Amazon DynamoDB-Tabelle hinzugefügt wird.

Um eine Funktion so zu konfigurieren, dass sie als Reaktion auf ein bestimmtes Ereignis ausgeführt wird, fügen Sie einen Trigger hinzu. Wenn Sie einen Trigger erstellen, AWS-Services können andere Ihre Funktion direkt aufrufen, indem sie ein Ereignisobjekt an Lambda weiterleiten, wenn ein bestimmtes Ereignis eintritt. Eine Funktion kann mehrere Trigger haben, von denen jeder Ihre Funktion unabhängig aufruft.

Einige Arten von Stream- und Warteschlangendiensten, wie Amazon Kinesis oder Amazon Simple Queue Service (Amazon SQS), können Lambda nicht direkt mit einem Trigger aufrufen. Für diese Dienste müssen Sie stattdessen eine Zuordnung der Ereignisquellen erstellen. Ereignisquellenzuordnungen sind eine spezielle Art von Lambda-Ressource, die kontinuierlich einen Stream oder eine Warteschlange abfragt, um nach neuen Ereignissen zu suchen. Beispielsweise könnte eine Ereignisquellenzuordnung eine Amazon SQS SQS-Warteschlange abfragen, um zu überprüfen, ob neue Nachrichten hinzugefügt wurden. Lambda bündelt neue Nachrichten in einer einzigen Nutzlast, bis ein von Ihnen konfiguriertes Limit erreicht ist, und ruft dann Ihre Funktion mit einem einzigen Ereignisobjekt auf, das alle Datensätze im Batch enthält.

Die einfachste Methode, eine Trigger- oder Ereignisquellenzuordnung zu erstellen, ist die Verwendung der Lambda-Konsole. Obwohl die zugrunde liegenden Ressourcen, die Lambda erstellt, und die Art und Weise, wie Ihre Funktion aufgerufen wird, unterschiedlich sind, verwendet der Prozess zum Erstellen einer Trigger- oder Ereignisquellenzuordnung in der Konsole dieselbe Methode.

Ein Beispiel für einen Trigger in Aktion finden Sie zunächst im Tutorial Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion. Einen allgemeinen Überblick über die Verwendung von Triggern und Anweisungen zum Erstellen eines Triggers mithilfe der Lambda-Konsole finden Sie unter. Lambda mit Ereignissen aus anderen Diensten aufrufen AWS

Das Event-Objekt

Lambda ist ein ereignisgesteuerter Rechendienst. Das bedeutet, dass Ihr Code als Reaktion auf Ereignisse ausgeführt wird, die von externen Produzenten generiert wurden. Ereignisdaten werden als Dokument im JSON-Format an Ihre Funktion übergeben, das von der Runtime in ein Objekt umgewandelt wird, das Ihr Code verarbeiten kann. In Python konvertiert die Runtime beispielsweise ein JSON-Objekt in ein Python-Wörterbuch und übergibt dieses als event Eingabeargument an die Funktion.

Wenn das Ereignis von einem anderen generiert wird AWS-Service, hängt das Format des Ereignisses vom Dienst ab, der es generiert. Ein Amazon S3 S3-Ereignis enthält beispielsweise den Namen des Buckets, der Ihre Funktion ausgelöst hat, sowie Informationen über Objekte in diesem Bucket. Weitere Informationen zum Format der von Different generierten Ereignisse finden Sie in den entsprechenden Kapiteln unterLambda mit Ereignissen aus anderen Diensten aufrufen AWS. AWS-Services

Sie können eine Lambda-Funktion auch direkt aufrufen, AWS CLIindem Sie die Lambda-Konsole oder eines der AWS Software Development Kits () verwenden. SDKs Wenn Sie eine Funktion direkt aufrufen, bestimmen Sie das Format und den Inhalt des JSON-Ereignisses. Nehmen wir zum Beispiel an, Sie haben eine Lambda-Funktion, die Wetterdaten in eine Datenbank schreibt. Sie könnten das folgende JSON-Format für Ihre Veranstaltung definieren. Wie bei Ereignissen, die von anderen generiert wurden AWS-Services, konvertiert die Lambda-Laufzeit dieses JSON in ein Objekt, bevor es an den Handler Ihrer Funktion übergeben wird.

Beispiel benutzerdefiniertes Lambda-Ereignis
{ "Location": "SEA", "WeatherData":{ "TemperaturesF":{ "MinTempF": 22, "MaxTempF": 78 }, "PressuresHPa":{ "MinPressureHPa": 1015, "MaxPressureHPa": 1027 } } }

Da die Lambda-Laufzeit das Ereignis in ein Objekt konvertiert, können Sie Variablen problemlos Werte im Ereignis zuweisen, ohne das JSON deserialisieren zu müssen. Die folgenden Beispielcodefragmente zeigen, wie der Mindesttemperaturwert aus dem vorherigen Beispielereignis einer Variablen MinTemp mithilfe der Laufzeiten Python und Node.js zugewiesen wird. In beiden Fällen wird das Ereignisobjekt als benanntes Argument an die Handlerfunktion Ihrer Funktion übergeben. event

Beispiel Python-Codeausschnitt
MinTemp = event['WeatherData']['TemperaturesF']['MinTempF']
Beispiel Codeausschnitt von Node.js
let MinTemp = event.WeatherData.TemperaturesF.MinTempF;

Ein Beispiel für das Aufrufen einer Lambda-Funktion mit einem benutzerdefinierten Ereignis finden Sie unter. Erstellen Sie Ihre erste Lambda-Funktion

Lambda-Berechtigungen

Für Lambda gibt es zwei Haupttypen von Berechtigungen, die Sie konfigurieren müssen:

  • Berechtigungen, die Ihre Funktion benötigt, um auf andere zuzugreifen AWS-Services

  • Berechtigungen, die andere Benutzer für den Zugriff auf Ihre Funktion AWS-Services benötigen

In den folgenden Abschnitten werden diese beiden Berechtigungstypen beschrieben und bewährte Methoden für die Anwendung von Berechtigungen mit den geringsten Rechten erörtert.

Berechtigungen für Funktionen für den Zugriff auf andere Ressourcen AWS

Lambda-Funktionen müssen häufig auf andere AWS Ressourcen zugreifen und Aktionen mit ihnen ausführen. Eine Funktion könnte beispielsweise Elemente aus einer DynamoDB-Tabelle lesen, ein Objekt in einem S3-Bucket speichern oder in eine Amazon SQS SQS-Warteschlange schreiben. Um Funktionen die Berechtigungen zu geben, die sie für die Ausführung dieser Aktionen benötigen, verwenden Sie eine Ausführungsrolle.

Eine Lambda-Ausführungsrolle ist eine besondere Rolle AWS Identity and Access Management (IAM), eine Identität, die Sie in Ihrem Konto erstellen und der in einer Richtlinie bestimmte Berechtigungen zugeordnet sind.

Jede Lambda-Funktion muss eine Ausführungsrolle haben, und eine einzelne Rolle kann von mehr als einer Funktion verwendet werden. Wenn eine Funktion aufgerufen wird, übernimmt Lambda die Ausführungsrolle der Funktion und erhält die Erlaubnis, die in der Richtlinie der Rolle definierten Aktionen auszuführen.

Wenn Sie eine Funktion in der Lambda-Konsole erstellen, erstellt Lambda automatisch eine Ausführungsrolle für Ihre Funktion. Die Rollenrichtlinie gibt Ihrer Funktion grundlegende Berechtigungen zum Schreiben von Protokollausgaben in Amazon CloudWatch Logs. Um Ihrer Funktion die Erlaubnis zu erteilen, Aktionen mit anderen AWS Ressourcen durchzuführen, müssen Sie die Rolle bearbeiten, um die zusätzlichen Berechtigungen hinzuzufügen. Der einfachste Weg, Berechtigungen hinzuzufügen, ist die Verwendung einer AWS verwalteten Richtlinie. Verwaltete Richtlinien werden von vielen gängigen Anwendungsfällen erstellt AWS und verwaltet und bieten Berechtigungen für diese. Wenn Ihre Funktion beispielsweise CRUD-Operationen an einer DynamoDB-Tabelle ausführt, können Sie die AmazonDynamoDBFullAccess-Richtlinie zu Ihrer Rolle hinzufügen.

Berechtigungen für andere Benutzer und Ressourcen für den Zugriff auf Ihre Funktion

Um anderen AWS-Service Zugriffsberechtigungen auf Ihre Lambda-Funktion zu gewähren, verwenden Sie eine ressourcenbasierte Richtlinie. In IAM werden ressourcenbasierte Richtlinien an eine Ressource (in diesem Fall Ihre Lambda-Funktion) angehängt und definieren, wer auf die Ressource zugreifen kann und welche Aktionen sie ausführen dürfen.

Damit ein anderer AWS-Service Benutzer Ihre Funktion über einen Trigger aufrufen kann, muss die ressourcenbasierte Richtlinie Ihrer Funktion diesem Dienst die Erlaubnis erteilen, die Aktion zu verwenden. lambda:InvokeFunction Wenn Sie den Trigger mit der Konsole erstellen, fügt Lambda diese Berechtigung automatisch für Sie hinzu.

Um anderen AWS Benutzern die Erlaubnis zu erteilen, auf Ihre Funktion zuzugreifen, können Sie dies in der ressourcenbasierten Richtlinie Ihrer Funktion genauso definieren wie für eine andere AWS-Service OR-Ressource. Sie können auch eine identitätsbasierte Richtlinie verwenden, die dem Benutzer zugeordnet ist.

Bewährte Methoden für Lambda-Berechtigungen

Wenn Sie Berechtigungen mithilfe von IAM-Richtlinien festlegen, besteht die bewährte Sicherheitsmethode darin, nur die für die Ausführung einer Aufgabe erforderlichen Berechtigungen zu gewähren. Dies wird als Prinzip der geringsten Rechte bezeichnet. Um mit der Gewährung von Berechtigungen für Ihre Funktion zu beginnen, können Sie sich für die Verwendung einer AWS verwalteten Richtlinie entscheiden. Verwaltete Richtlinien können die schnellste und einfachste Methode sein, um Berechtigungen für die Ausführung einer Aufgabe zu erteilen. Sie können jedoch auch andere Berechtigungen beinhalten, die Sie nicht benötigen. Wenn Sie von der frühen Entwicklung über den Test bis hin zur Produktion übergehen, empfehlen wir Ihnen, die Berechtigungen auf die erforderlichen zu reduzieren, indem Sie Ihre eigenen, vom Kunden verwalteten Richtlinien definieren.

Das gleiche Prinzip gilt für die Erteilung von Zugriffsberechtigungen für Ihre Funktion mithilfe einer ressourcenbasierten Richtlinie. Wenn Sie beispielsweise Amazon S3 die Erlaubnis geben möchten, Ihre Funktion aufzurufen, empfiehlt es sich, den Zugriff auf einzelne Buckets oder Buckets im Besonderen zu beschränken AWS-Konten, anstatt dem S3-Service pauschale Berechtigungen zu erteilen.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.