Hinzufügen von Ebenen zu Funktionen - 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.

Hinzufügen von Ebenen zu Funktionen

Eine Lambda-Ebene ist ein ZIP-Dateiarchiv mit ergänzendem Code oder ergänzenden Daten. Ebenen enthalten üblicherweise Bibliotheksabhängigkeiten, eine benutzerdefinierte Laufzeit oder Konfigurationsdateien.

In diesem Abschnitt erfahren Sie, wie Sie einer Lambda-Funktion eine Ebene hinzufügen. Weitere konzeptionelle Informationen zu Ebenen sowie dazu, warum Sie ggf. welche verwenden sollten, finden Sie unter Verwaltung von Lambda-Abhängigkeiten mit Ebenen.

Bevor Sie eine Lambda-Funktion für die Verwendung einer Ebene konfigurieren können, ist Folgendes erforderlich:

Sie können bis zu fünf Ebenen zu einer Lambda-Funktion hinzufügen. Die entpackte Gesamtgröße der Funktion und aller Ebenen darf das Größenlimit des entpackten Bereitstellungspakets von 250 MB nicht überschreiten. Weitere Informationen finden Sie unter Lambda-Kontingente.

Ihre Funktionen können eine beliebige Ebenenversion, die Sie bereits hinzugefügt haben, weiterhin nutzen, auch wenn diese Ebenenversion gelöscht wurde oder Ihnen die Zugriffsberechtigung für die Ebene entzogen wurde. Sie können jedoch keine neue Funktion erstellen, die eine Version einer gelöschten Ebene verwendet.

Anmerkung

Achten Sie darauf, dass die Ebenen, die Sie einer Funktion hinzufügen, mit der Laufzeit und der Befehlssatzarchitektur der Funktion kompatibel sind.

So fügen Sie einer Funktion eine Ebene hinzu (Konsole)
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie die zu konfigurierende Funktion aus.

  3. Wählen Sie unter Ebenen die Option Ebene hinzufügen

  4. Wählen Sie unter Ebene auswählen eine Ebenenquelle aus:

    1. Wählen Sie für die Ebenenquelle AWS-Ebenen oder Benutzerdefinierte Ebenen eine Ebene aus dem Pull-Down-Menü aus. UNDERVersion, wählen Sie eine Ebenenversion aus dem Pulldown-Menü aus.

    2. Geben Sie für die Ebenenquelle ARN angeben einen ARN in das Textfeld ein und wählen Sie anschließend Überprüfen aus. Wählen Sie dann Hinzufügen aus.

Die Reihenfolge, in der Sie die Ebenen hinzufügen, ist die Reihenfolge, in der Lambda den Ebeneninhalt in der Ausführungsumgebung zusammenführt. Sie können die Reihenfolge für Zusammenführungen der Layers mit der -Konsole ändern.

So aktualisieren Sie die Zusammenführungsreihenfolge von Ebenen für Ihre Funktion (Konsole)
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie die zu konfigurierende Funktion aus.

  3. Wählen Sie unter Ebenen die Option Bearbeiten

  4. Wählen Sie eine der Ebenen aus.

  5. Klicken Sie aufFrüher MergeoderSpäter Zusammenführungenum die Reihenfolge der Ebenen anzupassen.

  6. Wählen Sie Speichern.

Ebenen werden versioniert. Der Inhalt jeder Ebenenversion ist unveränderlich. Der Besitzer einer Ebene kann neue Ebenenversionen veröffentlichen, um aktualisierte Inhalte bereitzustellen. Sie können die Konsole verwenden, um die mit Ihren Funktionen verknüpfte Ebenenversion zu aktualisieren.

So aktualisieren Sie Ebenenversionen für Ihre Funktion (Konsole)
  1. Öffnen Sie die Seite Ebenen der Lambda-Konsole.

  2. Wählen Sie die Ebene aus, für die Sie die Version aktualisieren möchten.

  3. Wählen Sie die Registerkarte Funktionen mit dieser Version aus.

  4. Wählen Sie die Funktionen aus, die Sie ändern möchten, und wählen Sie anschließend Bearbeiten aus.

  5. Wählen Sie unter Ebenenversion die Ebenenversion aus, zu der Sie wechseln möchten.

  6. Klicken Sie auf Funktionen aktualisieren.

Die Ebenenversionen von Funktionen kann nicht über AWS-Konten hinweg aktualisiert werden.

Zugriff auf Ebeneninhalte von Ihrer Funktion

Wenn Ihre Lambda-Funktion Ebenen enthält, extrahiert Lambda die Ebeneninhalte in das Verzeichnis /opt in der Ausführungsumgebung der Funktion. Lambda extrahiert die Schichten in der von der Funktion aufgeführten Reihenfolge (niedrig bis hoch). Lambda führt Ordner mit dem gleichen Namen zusammen. Wenn dieselbe Datei in mehreren Ebenen angezeigt wird, verwendet die Funktion die Version in der letzten extrahierten Ebene.

Jede Lambda-Laufzeit fügt der Variablen PATH spezifische /opt-Verzeichnisordner hinzu. Ihr Funktionscode kann auf den Ebeneninhalt zugreifen, ohne den Pfad angeben zu müssen. Weitere Informationen zu Pfadeinstellungen in der Lambda-Ausführungsumgebung finden Sie unter Definierte Laufzeitumgebungsvariablen.

Informationen dazu, wo Sie Ihre Bibliotheken beim Erstellen einer Ebene einschließen müssen, finden Sie unter Ebenenpfade für jede Lambda-Laufzeit.

Bei Verwendung einer Node.js- oder Python-Laufzeit können Sie den integrierten Code-Editor in der Lambda-Konsole verwenden. Es sollte möglich sein, jede beliebige Bibliothek zu importieren, die Sie der aktuellen Funktion als Ebene hinzugefügt haben.

Suche nach Ebeneninformationen

Verwenden Sie die -ListLayersAPI, um Ebenen in Ihrem Konto zu finden, die mit der Laufzeit Ihrer Funktion kompatibel sind. Sie können z. B. den folgenden AWS Command Line Interface (CLI)-Befehl vom Typ list-layers verwenden:

aws lambda list-layers --compatible-runtime python3.9

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.9", "python3.10", "python3.11", ] } } ] }

Wenn Sie alle Ebenen in Ihrem Konto auflisten möchten, lassen Sie die Option --compatible-runtime weg. Die Antwortdetails enthalten jeweils die neueste Version der einzelnen Ebenen.

Sie können auch die neueste Version einer Ebene mit der ListLayerVersions-API abrufen. Sie können z. B. den folgenden CLI-Befehl vom Typ list-layer-versions verwenden:

aws lambda list-layer-versions --layer-name my-layer

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

{ "LayerVersions": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "java11" ] }, { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Version": 1, "Description": "My layer", "CreatedDate": "2023-11-15T00:27:46.592+0000", "CompatibleRuntimes": [ "java11" ] } ] }