

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.

# Ändern der Laufzeitumgebung
<a name="runtimes-modify"></a>

Sie können [interne Erweiterungen](lambda-extensions.md) verwenden, um den Laufzeitprozess zu ändern. Interne Erweiterungen sind keine separaten Prozesse – sie werden als Teil des Laufzeitprozesses ausgeführt.

Lambda bietet sprachspezifische [Umgebungsvariablen](configuration-envvars.md), die Sie festlegen können, um Optionen und Werkzeuge zur Laufzeit hinzuzufügen. Lambda bietet auch [Wrapper-Skripts](#runtime-wrapper), die Lambda erlauben, den Laufzeit-Startup an Ihr Skript zu delegieren. Sie können ein Wrapper-Skript erstellen, um das Laufzeit-Startup-Verhalten anzupassen.

## Sprachspezifische Umgebungsvariablen
<a name="runtimes-envvars"></a>

Lambda unterstützt Konfigurationsmöglichkeiten, mit denen Code während der Funktionsinitialisierung über die folgenden sprachspezifischen Umgebungsvariablen vorgeladen werden kann:
+ `JAVA_TOOL_OPTIONS` – Unter Java unterstützt Lambda diese Umgebungsvariable, um zusätzliche Befehlszeilenvariablen in Lambda zu setzen. Mit dieser Umgebungsvariablen können Sie die Initialisierung von Werkzeugen angeben, insbesondere das Starten von nativen oder Java-Agenten mit den Optionen `agentlib` oder `javaagent`. Weitere Informationen finden Sie unter [`JAVA_TOOL_OPTIONS`-Umgebungsvariablen](https://docs.aws.amazon.com/lambda/latest/dg/java-customization.html#java-tool-options).
+ `NODE_OPTIONS` – Verfügbar in [Node.js-Laufzeiten](lambda-nodejs.md).
+ `DOTNET_STARTUP_HOOKS` – Auf .NET Core 3.1 und höher gibt diese Umgebungsvariable einen Pfad zu einer Assembly (DLL) an, die Lambda verwenden kann.

Die Verwendung sprachspezifischer Umgebungsvariablen ist die bevorzugte Methode zum Festlegen von Startup-Eigenschaften.

## Wrapper-Skripte
<a name="runtime-wrapper"></a>

Sie können ein *Wrapper-Skript* erstellen, um das Laufzeit-Startup-Verhalten Ihrer Lambda-Funktion anzupassen. Mit einem Wrapper-Skript können Sie Konfigurationsparameter festlegen, die nicht über sprachspezifische Umgebungsvariablen festgelegt werden können.

**Anmerkung**  
Aufrufe können fehlschlagen, wenn das Wrapper-Skript den Laufzeitprozess nicht erfolgreich startet.

Wrapper-Skripts werden auf allen nativen [Lambda-Laufzeiten](lambda-runtimes.md) unterstützt. Wrapper-Skripts werden auf [Reine OS-Laufzeiten](runtimes-provided.md) (der `provided`-Laufzeitfamilie) nicht unterstützt.

Wenn Sie ein Wrapper-Skript für Ihre Funktion verwenden, startet Lambda die Laufzeit mit Ihrem Skript. Lambda sendet den Pfad an Ihr Skript zum Interpreter und alle ursprünglichen Argumente für den Startup der Standardlaufzeit. Ihr Skript kann das Startup-Verhalten des Programms erweitern oder transformieren. Beispielsweise kann das Skript Argumente injizieren und ändern, Umgebungsvariablen festlegen oder Metriken, Fehler und andere Diagnoseinformationen erfassen.

Sie geben das Skript an, indem Sie den Wert der `AWS_LAMBDA_EXEC_WRAPPER`-Umgebungsvariablen als Dateisystempfad einer ausführbaren Binärdatei oder eines Skripts festlegen.

### Beispiel: Erstellen und Verwenden eines Wrapper-Skripts als Lambda-Ebene
<a name="runtime-wrapper-example"></a>

Im folgenden Beispiel erstellen Sie ein Wrapper-Skript, um den Python-Interpreter mit der `-X importtime`-Option zu starten. Wenn Sie die Funktion ausführen, generiert Lambda einen Protokolleintrag, der die Dauer der Importzeit für jeden Import anzeigt.

**So erstellen und verwenden Sie ein Wrapper-Skript als Ebene**

1. Erstellen Sie ein Verzeichnis für die Ebene:

   ```
   mkdir -p python-wrapper-layer/bin
   cd python-wrapper-layer/bin
   ```

1. Fügen Sie im Verzeichnis `bin` den folgenden Code in eine neue Datei namens `importtime_wrapper` ein. Dies ist das Wrapper-Skript.

   ```
   #!/bin/bash
   
   # the path to the interpreter and all of the originally intended arguments
   args=("$@")
   
   # the extra options to pass to the interpreter
   extra_args=("-X" "importtime")
   
   # insert the extra options
   args=("${args[@]:0:$#-1}" "${extra_args[@]}" "${args[@]: -1}")
   
   # start the runtime with the extra options
   exec "${args[@]}"
   ```

1. Geben Sie dem Skript die Berechtigung zur Ausführung:

   ```
   chmod +x importtime_wrapper
   ```

1. Erstellen Sie eine ZIP-Datei für die Ebene:

   ```
   cd ..
   zip -r ../python-wrapper-layer.zip .
   ```

1. Vergewissern Sie sich, dass Ihre .zip-Datei die folgende Verzeichnisstruktur aufweist:

   ```
   python-wrapper-layer.zip
   └ bin
       └ importtime_wrapper
   ```

1. [Erstellen Sie eine Ebene](creating-deleting-layers.md#layers-create) mit dem .zip-Paket.

1. Erstellen Sie eine Funktion mit der Lambda-Konsole.

   1. Öffnen Sie die [Lambda-Konsole](https://console.aws.amazon.com/lambda).

   1. Wählen Sie **Create function (Funktion erstellen)**.

   1. Geben Sie einen **Function name** (Funktionsnamen) ein.

   1. Wählen Sie für **Laufzeit** die **neueste unterstützte** Python-Laufzeit aus.

   1. Wählen Sie **Create function (Funktion erstellen)**.

1. Fügen Sie die Ebene zu Ihrer Funktion hinzu.

   1. Wählen Sie Ihre Funktion aus, und wählen Sie dann die Registerkarte **Code**, falls sie nicht bereits ausgewählt ist.

   1. Blättern Sie nach unten bis zum Abschnitt **Ebenen** und wählen Sie dann **Eine Ebene hinzufügen**.

   1. Wählen Sie unter **Ebenenquelle** die Option **Benutzerdefinierte Ebenen** und wählen Sie dann Ihre Ebene aus der Dropdown-Liste **Benutzerdefinierte Ebenen** aus.

   1.  Wählen Sie für **Version** die Option **1**.

   1. Wählen Sie **Hinzufügen** aus.

1. Fügen Sie die Wrapper-Umgebungsvariable hinzu.

   1. Wählen Sie den Tab **Configuration (Konfiguration)** und dann **Environment variables (Umgebungsvariablen)** aus.

   1. Wählen Sie unter **Environment variables (Umgebungsvariablen)** die Option **Edit (Bearbeiten)**.

   1. Wählen Sie **Umgebungsvariablen hinzufügen** aus.

   1. Geben Sie für **Key (Schlüssel)** `AWS_LAMBDA_EXEC_WRAPPER` ein.

   1. Geben Sie als **Wert** `/opt/bin/importtime_wrapper` (`/opt/`\$1 die Ordnerstruktur Ihrer ZIP-Ebene) ein.

   1. Wählen Sie **Speichern**.

1. Testen Sie das Wrapper-Skript.

   1. Wählen Sie die Registerkarte **Test**.

   1. Wählen Sie unter **Testereignis** die Option **Test** aus. Sie brauchen kein Test-Ereignis zu erstellen – das Standard-Ereignis ist ausreichend.

   1. Scrollen Sie nach unten zu **Protokollausgabe**. Da Ihr Wrapper-Skript den Python-Interpreter mit der `-X importtime`-Option gestartet hat, zeigen die Protokolle die für jeden Import erforderliche Zeit an. Zum Beispiel:

      ```
      532 |           collections
      import time:        63 |         63 |           _functools
      import time:      1053 |       3646 |         functools
      import time:      2163 |       7499 |       enum
      import time:       100 |        100 |         _sre
      import time:       446 |        446 |           re._constants
      import time:       691 |       1136 |         re._parser
      import time:       378 |        378 |         re._casefix
      import time:       670 |       2283 |       re._compiler
      import time:       416 |        416 |       copyreg
      ```