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:
-
Stellen Sie sicher, dass Sie berechtigt sind, die GetLayerVersionAPIOn-The-Layer-Version aufzurufen. Für Funktionen in Ihrer AWS-Konto müssen Sie diese Berechtigung in Ihrer Benutzerrichtlinie haben. Um eine Ebene in einem anderen Konto zu verwenden, muss der Eigentümer des anderen Kontos Ihrem Konto die Berechtigung in einer ressourcenbasierten Richtlinie erteilen. Beispiele finden Sie unter Lambda-Layer-Zugriff auf andere Konten gewähren.
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)
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie die zu konfigurierende Funktion aus.
-
Wählen Sie unter Ebenen die Option Ebene hinzufügen
-
Wählen Sie unter Ebene auswählen eine Ebenenquelle aus:
-
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.
-
Geben Sie für die Option ARN Layer-Quelle angeben eine ARN in das Textfeld ein und wählen Sie Ü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)
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie die zu konfigurierende Funktion aus.
-
Wählen Sie unter Ebenen die Option Bearbeiten
-
Wählen Sie eine der Ebenen aus.
-
Klicken Sie aufFrüher MergeoderSpäter Zusammenführungenum die Reihenfolge der Ebenen anzupassen.
-
Wählen Sie Save (Speichern) aus.
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)
-
Öffnen Sie die Seite Ebenen
der Lambda-Konsole. -
Wählen Sie die Ebene aus, für die Sie die Version aktualisieren möchten.
-
Wählen Sie die Registerkarte Funktionen mit dieser Version aus.
-
Wählen Sie die Funktionen aus, die Sie ändern möchten, und wählen Sie anschließend Bearbeiten aus.
-
Wählen Sie unter Ebenenversion die Ebenenversion aus, zu der Sie wechseln möchten.
-
Klicken Sie auf Funktionen aktualisieren.
Sie können die Versionen von Funktionsebenen nicht AWS kontenübergreifend aktualisieren.
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
Um Ebenen in Ihrem Konto zu finden, die mit der Laufzeit Ihrer Funktion kompatibel sind, verwenden Sie die ListLayersAPI. Sie können beispielsweise den folgenden Befehl list-layers
AWS Command Line Interface (CLI) 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 die neueste Version eines Layers auch mit dem abrufen ListLayerVersionsAPI. Sie können beispielsweise den folgenden list-layer-versions
CLI Befehl 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" ] } ] }