Lambda-Konzepte - AWS Lambda

Lambda-Konzepte

Lambda führt Instances Ihrer Funktion aus, um Ereignisse zu verarbeiten. Sie können Ihre Funktion direkt über die Lambda-API aufrufen oder Sie können einen AWS Dienst oder eine Ressource so konfigurieren, dass Ihre Funktion aufgerufen wird.

Funktion

Eine Funktion ist eine Ressource, die Sie aufrufen können, um Ihren Code in Lambda auszuführen. Eine Funktion verfügt über Code zur Verarbeitung der Ereignisse, die Sie an die Funktion übergeben oder die andere AWS-Services an die Funktion senden.

Weitere Informationen finden Sie unter Konfigurieren von AWS Lambda-Funktionen.

Auslöser

Ein Auslöser ist eine Ressource oder Konfiguration, die eine Lambda-Funktion aufruft. Auslöser umfassen AWS-Services, die Sie zum Aufrufen einer Funktion und Ereignisquellen-Mappings konfigurieren können. Ein Ereignisquellen-Mapping ist eine Ressource in Lambda die Elemente aus einem Stream oder einer Warteschlange liest und eine Funktion aufruft. Weitere Informationen finden Sie unter Aufrufen von Lambda-Funktionen und Verwenden von AWS Lambda mit sonstigen Services.

Veranstaltung

Ein Ereignis ist ein JSON-formatiertes Dokument, das Daten für eine Lambda-Funktion enthält, die verarbeitet werden soll. Die Laufzeit konvertiert die Funktion zu einem Objekt und übergibt es an Ihren Funktionscode. Wenn Sie eine Funktion aufrufen, bestimmen Sie die Struktur und den Inhalt des Ereignisses.

Beispiel Benutzerdefiniertes Ereignis – Wetterdaten
{ "TemperatureK": 281, "WindKmh": -3, "HumidityPct": 0.55, "PressureHPa": 1020 }

Wenn ein AWS-Service Ihre Funktion aufruft, definiert der Service die Ereignisform.

Beispiel Ein Serviceereignis – Amazon-SNS-Benachrichtigung
{ "Records": [ { "Sns": { "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", ...

Weitere Informationen zu Ereignissen aus AWS-Services finden Sie unter Verwenden von AWS Lambda mit sonstigen Services.

Ausführungsumgebung

Eine Ausführungsumgebung bietet eine sichere und isolierte Laufzeitumgebung für Ihre Lambda-Funktion. Eine Ausführungsumgebung verwaltet die Prozesse und Ressourcen, die zum Ausführen der Funktion erforderlich sind. Die Ausführungsumgebung bietet Lebenszyklusunterstützung für die Funktion und für alle Erweiterungen, die mit Ihrer Funktion verknüpft sind.

Weitere Informationen finden Sie unter AWS Lambda-Ausführungsumgebung.

Befehlssatz-Architektur

Die-Befehlssatz-Architekturbestimmt den Typ des Computerprozessors, den Lambda zum Ausführen der Funktion verwendet. Lambda bietet eine Auswahl an Befehlssatz-Architekturen:

  • arm64 — 64-Bit-ARM-Architektur, für die AWS Graviton2-Prozessor.

  • x86_64 — 64-Bit-x86-Architektur für x86-basierte Prozessoren.

Weitere Informationen finden Sie unter Lambda-Befehlssatz-Architekturen.

Bereitstellungspaket

Sie stellen Ihren Lambda-Funktionscode mithilfe eines Bereitstellungspakets bereit. Lambda unterstützt zwei Arten von Bereitstellungspaketen:

  • Ein ZIP-Dateiarchiv, das Ihren Funktionscode und seine Abhängigkeiten enthält. Lambda stellt das Betriebssystem und die Laufzeit für Ihre Funktion bereit.

  • Ein Container-Image, das mit der Open Container Initiative (OCI)-Spezifikation kompatibel ist. Sie fügen dem Image Ihren Funktionscode und Ihre Abhängigkeiten hinzu. Sie müssen auch das Betriebssystem und eine Lambda-Laufzeit angeben.

Weitere Informationen finden Sie unter Lambda-Bereitstellungspakete.

Laufzeit

Die Laufzeit stellt eine sprachspezifische Umgebung bereit, die in der Ausführungsumgebung ausgeführt wird. Die Laufzeit leitet Aufrufereignisse, Kontextinformationen und Antworten zwischen Lambda und der Funktion weiter. Sie können von Lambda bereitgestellte Laufzeiten verwenden oder Ihre eigenen erstellen. Wenn Sie Ihren Code als ZIP-Dateiarchiv verpacken, müssen Sie Ihre Funktion so konfigurieren, dass eine Laufzeitumgebung verwendet wird, die Ihrer Programmiersprache entspricht. Bei einem Container-Image schließen Sie die Laufzeit beim Erstellen des Images ein.

Weitere Informationen finden Sie unter Lambda-Laufzeiten.

Ebene

Eine Lambda-Ebene ist ein ZIP-Dateiarchiv, das zusätzlichen Code oder Daten enthalten kann. Eine Ebene kann Bibliotheken, eine benutzerdefinierte Laufzeit, Daten oder Konfigurationsdateien enthalten.

Mit Ebenen lassen sich auf einfache Weise Bibliotheken und andere Abhängigkeiten verpacken, die Sie mit Ihren Lambda-Funktionen benutzen können. Die Verwendung von Ebenen verringert die Größe hochgeladener Bereitstellungsarchive und ermöglicht eine schnellere Bereitstellung Ihres Codes. Ebenen fördern außerdem die gemeinsame Nutzung von Code und die Trennung von Verantwortlichkeiten, damit Sie beim Schreiben von Geschäftslogik schneller iterieren können.

Sie können pro Funktion bis zu fünf Ebenen einschließen. Ebenen zählen zu den standardmäßigen Größenkontingenten für die Lambda-Bereitstellung. Wenn Sie eine Ebene in eine Funktion einschließen, wird der Inhalt in das /opt-Verzeichnis der Ausführungsumgebung entpackt.

Standardmäßig sind von Ihnen erstellte Ebenen privat für Ihr AWS-Konto. Sie können eine Ebene wahlweise auch mit anderen Konten teilen oder sie öffentlich machen. Falls Ihre Funktionen eine Ebene verwendet, die ein anderes Konto veröffentlicht hat, können Ihre Funktionen die Ebenenversion auch weiterverwenden, nachdem diese gelöscht wurde oder Ihre Zugangsberechtigung zur Ebene widerrufen wurde. Sie können jedoch keine neue Funktion erstellen oder Funktionen mit einer gelöschten Ebenen-Version aktualisieren.

Funktionen, die als Container-Image bereitgestellt werden, verwenden keine Ebenen. Stattdessen packen Sie Ihre bevorzugte Laufzeitumgebung, Bibliotheken und andere Abhängigkeiten beim Erstellen des Images in das Container-Image.

Weitere Informationen finden Sie unter Erstellen und Freigeben von Lambda-Ebenen.

Erweiterung

Lambda-Erweiterungen ermöglichen Ihnen, Ihre Funktionen zu erweitern. Sie können beispielsweise Erweiterungen verwenden, um Ihre Funktionen in Ihre bevorzugten Überwachungs-, Beobachtbarkeits-, Sicherheits- und Governance-Tools zu integrieren. Sie können aus einer Vielzahl von Tools wählen, die von AWS Lambda-Partnern bereitgestellt werden, oder Sie können Ihre eigenen Lambda-Erweiterungen erstellen.

Eine interne Erweiterung wird im Laufzeitprozess ausgeführt und hat denselben Lebenszyklus wie die Laufzeitumgebung. Eine externe Erweiterung wird als separater Prozess in der Ausführungsumgebung ausgeführt. Die externe Erweiterung wird initialisiert, bevor die Funktion aufgerufen wird, wird parallel zur Laufzeit der Funktion und weiterhin ausgeführt, nachdem der Funktionsaufruf abgeschlossen ist.

Weitere Informationen finden Sie unter Verwenden von Lambda-Erweiterungen.

Nebenläufigkeit

Gleichzeitigkeit bezeichnet die Anzahl der Anforderungen, die Ihre Funktion zu einem bestimmten Zeitpunkt verarbeitet. Wenn Ihre Funktion aufgerufen wird, stellt Lambda eine Instance bereit, um das Ereignis zu verarbeiten. Wenn der Funktionscode die Ausführung abgeschlossen hat, kann er eine andere Anforderung verarbeiten. Wenn die Funktion erneut aufgerufen wird, während noch eine Anforderung verarbeitet wird, erfolgt die Bereitstellung einer weiteren Instance, wodurch die Gleichzeitigkeit der Funktion erhöht wird.

Die Gleichzeitigkeit unterliegt Kontingenten auf AWS-Regionenebene. Sie können auch einzelne Funktionen konfigurieren, um ihre Gleichzeitigkeit zu begrenzen oder sicherzustellen, dass sie eine bestimmte Gleichzeitigkeitsstufe erreichen können. Weitere Informationen finden Sie unter Verwalten der reservierten Lambda-Gleichzeitigkeit.

Qualifier

Wenn Sie eine Funktion aufrufen oder anzeigen, können Sie einen Qualifikator angeben, um eine Version oder einen Alias festzulegen. Eine Version ist ein unveränderlicher Snapshot des Codes und der Konfiguration einer Funktion, die einen numerischen Qualifikator hat. Beispiel, my-function:1. Ein Alias ist ein Zeiger auf eine Version, der aktualisiert werden kann, um ihn einer anderen Version zuzuordnen oder den Datenverkehr zwischen zwei Versionen aufzuteilen. Beispiel, my-function:BLUE. Sie können Versionen und Aliase zusammen verwenden, um eine stabile Schnittstelle für Clients bereitzustellen, über die diese Ihre Funktion aufrufen können.

Weitere Informationen finden Sie unter Versionen der Lambda-Funktion.

Ziel

Ein Ziel ist eine AWS-Ressource, an die Lambda Ereignisse von einem asynchronen Aufruf senden kann. Sie können ein Ziel für Ereignisse konfigurieren, deren Verarbeitung fehlschlägt. Einige Services unterstützen auch ein Ziel für Ereignisse, die erfolgreich verarbeitet wurden.

Weitere Informationen finden Sie unter Konfigurieren von Zielen für den asynchronen Aufruf.