

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.

# Verpacken Ihres Ebeneninhalts
<a name="packaging-layers"></a>

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

In diesem Abschnitt erfahren Sie, wie Sie Ihren Ebeneninhalt ordnungsgemäß verpacken. Weitere konzeptionelle Informationen zu Ebenen sowie dazu, warum Sie ggf. welche verwenden sollten, finden Sie unter [Verwaltung von Lambda-Abhängigkeiten mit Ebenen](chapter-layers.md).

Der erste Schritt beim Erstellen einer Ebene besteht darin, den gesamten Ebeneninhalt in einem ZIP-Dateiarchiv zu bündeln. Da Lambda-Funktionen unter [Amazon Linux](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html) ausgeführt werden, muss Ihr Ebeneninhalt in einer Linux-Umgebung kompiliert und erstellt werden können.

Um sicherzustellen, dass Ihr Ebeneninhalt ordnungsgemäß in einer Linux-Umgebung funktioniert, empfiehlt es sich, den Ebeneninhalt mit einem Tool wie [Docker](https://docs.docker.com/get-docker) zu erstellen.

**Topics**
+ [

## Ebenenpfade für jede Lambda-Laufzeit
](#packaging-layers-paths)

## Ebenenpfade für jede Lambda-Laufzeit
<a name="packaging-layers-paths"></a>

Wenn Sie einer Funktion eine Ebene hinzufügen, lädt Lambda den Ebeneninhalt in das Verzeichnis `/opt` der Ausführungsumgebung. Für jede Lambda-Laufzeit enthält die Variable `PATH` bereits spezifische Ordnerpfade innerhalb des Verzeichnisses `/opt`. Um sicherzustellen, dass Lambda den Inhalt Ihrer Ebene aufnimmt, müssen die Abhängigkeiten Ihrer ZIP-Datei in einem der folgenden Ordnerpfade enthalten sein:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/lambda/latest/dg/packaging-layers.html)

Die folgenden Beispiele zeigen, wie Sie die Ordner im ZIP-Archiv Ihrer Ebene strukturieren können.

------
#### [ Node.js ]

**Example Dateistruktur für das AWS X-Ray-SDK für Node.js**  

```
xray-sdk.zip
└ nodejs/node_modules/aws-xray-sdk
```

------
#### [ Python ]

**Example**  

```
python/              # Required top-level directory
└── requests/
└── boto3/
└── numpy/
└── (dependencies of the other packages)
```

------
#### [ Ruby ]

**Example Dateistruktur für das JSON-Gem**  

```
json.zip
└ ruby/gems/3.4.0/
               | build_info
               | cache
               | doc
               | extensions
               | gems
               | └ json-2.1.0
               └ specifications
                 └ json-2.1.0.gemspec
```

------
#### [ Java ]

**Example Dateistruktur für Jackson-JAR-Datei**  

```
layer_content.zip
└ java
    └ lib
        └ jackson-core-2.17.0.jar
        └ <other potential dependencies>
        └ ...
```

------
#### [ All ]

**Example Dateistruktur für jq-Bibliothek**  

```
jq.zip
└ bin/jq
```

------

Eine sprachspezifische Anleitung zum Verpacken, Erstellen und Hinzufügen einer Ebene finden Sie auf den folgenden Seiten:
+ **Node.js** – [Arbeiten mit Ebenen für Node.js Lambda-Funktionen](nodejs-layers.md)
+ **Python** – [Arbeiten mit Ebenen für Python Lambda-Funktionen](python-layers.md)
+ **Ruby** – [Arbeiten mit Ebenen für Ruby Lambda-Funktionen](ruby-layers.md)
+ **Java** – [Arbeiten mit Ebenen für Java Lambda-Funktionen](java-layers.md)

Wir empfehlen, **keine** Ebenen zur Verwaltung von Abhängigkeiten für in Go und Rust geschriebene Lambda-Funktionen zu verwenden. Der Grund dafür ist, dass in diesen Sprachen geschriebene Lambda-Funktionen zu einer einzigen ausführbaren Datei kompiliert werden, die Sie Lambda bei der Bereitstellung Ihrer Funktion zur Verfügung stellen. Diese ausführbare Datei enthält Ihren kompilierten Funktionscode zusammen mit all seinen Abhängigkeiten. Die Verwendung von Ebenen verkompliziert nicht nur diesen Vorgang, sondern führt auch zu längeren Kaltstartzeiten, da Ihre Funktionen während der Init-Phase zusätzliche Assemblys manuell in den Speicher laden müssen.

Um externe Abhängigkeiten mit Lambda-Funktionen in Go und Rust zu verwenden, nehmen Sie sie direkt in Ihr Bereitstellungspaket auf.