

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.

# Plattform-Skripttools für Ihre Elastic Beanstalk Beanstalk-Umgebungen
<a name="custom-platforms-scripts"></a>

In diesem Thema werden Tools beschrieben, die AWS Elastic Beanstalk für Umgebungen bereitgestellt werden, die Amazon Linux-Plattformen verwenden. Die Tools befinden sich auf den EC2 Amazon-Instances der Elastic Beanstalk Beanstalk-Umgebungen.

## get-config
<a name="custom-platforms-scripts.get-config"></a>

Verwenden Sie das `get-config` Tool, um Werte von Umgebungsvariablen im Klartext und andere Plattform- und Instance-Informationen abzurufen. Das Tool steht unter `/opt/elasticbeanstalk/bin/get-config` zur Verfügung.

### get-config-Befehle
<a name="custom-platforms-scripts.get-config.commands"></a>

Jeder `get-config`-Tool-Befehl gibt einen bestimmten Typ von Informationen zurück. Verwenden Sie die folgende Syntax, um einen der Befehle des Tools auszuführen.

```
$ /opt/elasticbeanstalk/bin/get-config command [ options ]
```

Im folgenden Beispiel wird der Befehl `environment` ausgeführt:

```
$ /opt/elasticbeanstalk/bin/get-config environment -k PORT
```

Abhängig von dem gewählten Befehl und den gewählten Optionen gibt das Tool ein Objekt (JSON oder YAML) mit Schlüssel-Wert-Paaren oder einem einzelnen Wert zurück.

Sie können testen, `get-config` indem Sie SSH verwenden, um eine Verbindung zu einer EC2 Instance in Ihrer Elastic Beanstalk Beanstalk-Umgebung herzustellen.

**Anmerkung**  
Wenn Sie `get-config` zum Testen ausführen, benötigen einige Befehle möglicherweise Stammbenutzerrechte, um auf die zugrunde liegenden Informationen zuzugreifen. Wenn Sie einen Zugriffsberechtigungsfehler erhalten, führen Sie den Befehl unter `sudo` erneut aus.  
Sie müssen `sudo` nicht hinzufügen, wenn Sie das Tool in den Skripts verwenden, die Sie in Ihrer Umgebung bereitstellen. Elastic Beanstalk führt alle Ihre Skripte als Stammbenutzer aus.

In den folgenden Abschnitten werden die Befehle des Tools beschrieben.

#### optionsettings – Konfigurationsoptionen
<a name="custom-platforms-scripts.get-config.commands.optionsettings"></a>

Der Befehl `get-config optionsettings` gibt ein Objekt zurück, das die Konfigurationsoptionen auflistet, die für die Umgebung festgelegt und von der Plattform auf Umgebungs-Instances verwendet werden. Sie sind nach Namespace organisiert.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings
{"aws:elasticbeanstalk:application:environment":{"JDBC_CONNECTION_STRING":""},"aws:elasticbeanstalk:container:tomcat:jvmoptions":{"JVM Options":"","Xms":"256m","Xmx":"256m"},"aws:elasticbeanstalk:environment:proxy":{"ProxyServer":"nginx","StaticFiles":[""]},"aws:elasticbeanstalk:healthreporting:system":{"SystemType":"enhanced"},"aws:elasticbeanstalk:hostmanager":{"LogPublicationControl":"false"}}
```

Um einen bestimmten Wert für die Konfigurationsoption zurückzugeben, verwenden Sie die Option `--namespace` (`-n`), um einen Namespace anzugeben, und die Option `--option-name` (`-o`), um einen Optionsnamen anzugeben.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:container:php:phpini -o memory_limit
256M
```

#### environment – Umgebungseigenschaften
<a name="custom-platforms-scripts.get-config.commands.environment"></a>

Der `get-config environment` Befehl gibt ein Objekt zurück, das eine Liste von Umgebungseigenschaften enthält, darunter sowohl benutzerkonfigurierte als auch von Elastic Beanstalk bereitgestellte Eigenschaften. Die vom Benutzer konfigurierten Eigenschaften werden in der [Konsole](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console) als *Klartext* oder mit dem Namespace der Konfigurationsoption definiert. [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment)

```
$ /opt/elasticbeanstalk/bin/get-config environment
{"JDBC_CONNECTION_STRING":"","RDS_PORT":"3306","RDS_HOSTNAME":"anj9aw1b0tbj6b.cijbpanmxz5u.us-west-2.rds.amazonaws.com","RDS_USERNAME":"testusername","RDS_DB_NAME":"ebdb","RDS_PASSWORD":"testpassword1923851"}
```

Beispielsweise bietet Elastic Beanstalk Umgebungseigenschaften, mit denen die Verbindung zu einer integrierten Amazon RDS-DB-Instance (zum Beispiel `RDS_HOSTNAME`) hergestellt werden kann. Diese RDS-Verbindungseigenschaften werden in der Ausgabe von `get-config environment` angezeigt. Sie werden jedoch nicht in der Ausgabe von `get-config optionsettings`angezeigt. Dies liegt daran, dass sie in Konfigurationsoptionen nicht festgelegt wurden.

Wenn Sie eine bestimmte Umgebungseigenschaft zurückzugeben möchten, verwenden Sie die Option `--key` (`-k`), um einen Eigenschaftsschlüssel anzugeben.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k TESTPROPERTY
testvalue
```

**Anmerkung**  
Das `get-config` Tool kann keine [Umgebungsvariablen abrufen, die Geheimnisse speichern](AWSHowTo.secrets.env-vars.md). Weitere Hinweise zum programmgesteuerten Abrufen von Werten aus geheimen Speichern oder Parameterspeichern finden Sie unter [Verwendung von Secrets Manager](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.Secrets-Manager) oder. [Verwendung des Systems Manager Parameter Store](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.SSM-parmameter-store)

#### container – Konfigurationswerte auf der Instance
<a name="custom-platforms-scripts.get-config.commands.container"></a>

Der Befehl `get-config container` gibt ein Objekt zurück, das Plattform- und Umgebungskonfigurationswerte für Umgebungs-Instances auflistet. 

Das folgende Beispiel zeigt die Ausgabe des Befehls in einer Amazon Linux 2-Tomcat-Umgebung.

```
$ /opt/elasticbeanstalk/bin/get-config container
{"common_log_list":["/var/log/eb-engine.log","/var/log/eb-hooks.log"],"default_log_list":["/var/log/nginx/access.log","/var/log/nginx/error.log"],"environment_name":"myenv-1da84946","instance_port":"80","log_group_name_prefix":"/aws/elasticbeanstalk","proxy_server":"nginx","static_files":[""],"xray_enabled":"false"}
```

Um den Wert eines bestimmten Schlüssels zurückzugeben, verwenden Sie die Option `--key` (`-k`), um den Schlüssel anzugeben.

```
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name
myenv-1da84946
```

#### addons – Add-On-Konfigurationswerte
<a name="custom-platforms-scripts.get-config.commands.addons"></a>

Der Befehl `get-config addons` gibt ein Objekt zurück, das Konfigurationsinformationen von Umgebungs-Add-Ons enthält. Verwenden Sie ihn, um die Konfiguration einer Amazon RDS-Datenbank abzurufen, die der Umgebung zugeordnet ist.

```
$ /opt/elasticbeanstalk/bin/get-config addons
{"rds":{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}}
```

Sie können das Ergebnis auf zwei Arten einschränken. Um Werte für ein bestimmtes Add-On abzurufen, geben Sie mit der Option `--add-on` (`-a`) den Namen des Add-On an.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds
{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}
```

Um den Wert eines bestimmten Schlüssels in einem Add-On zurückzugeben, fügen Sie die Option `--key` (`-k`) hinzu, um den Schlüssel anzugeben.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds -k RDS_DB_NAME
ebdb
```

#### platformconfig – Konstante Konfigurationswerte
<a name="custom-platforms-scripts.get-config.commands.platformconfig"></a>

Der Befehl `get-config platformconfig` gibt ein Objekt zurück, das Plattformkonfigurationsinformationen enthält, die mit der Plattformversion konstant sind. Die Ausgabe ist in allen Umgebungen, in denen dieselbe Plattformversion ausgeführt wird, gleich. Das Ausgabeobjekt des Befehls verfügt über zwei eingebettete Objekte:
+ `GeneralConfig` – Enthält Informationen, die in den neuesten Versionen aller Amazon-Linux-2- und Amazon-Linux-2023-Plattformzweige konstant sind.
+ `PlatformSpecificConfig` – Enthält Informationen, die für die Plattformversion konstant sind und für diese spezifisch sind.

Das folgende Beispiel zeigt die Ausgabe des Befehls in einer Umgebung, die den *Corretto 11-Plattformzweig Tomcat 8.5* verwendet.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig
{"GeneralConfig":{"AppUser":"webapp","AppDeployDir":"/var/app/current/","AppStagingDir":"/var/app/staging/","ProxyServer":"nginx","DefaultInstancePort":"80"},"PlatformSpecificConfig":{"ApplicationPort":"8080","JavaVersion":"11","TomcatVersion":"8.5"}}
```

Um den Wert eines bestimmten Schlüssels zurückzugeben, verwenden Sie die Option `--key` (`-k`), um den Schlüssel anzugeben. Diese Schlüssel sind in den beiden eingebetteten Objekten eindeutig. Sie müssen das Objekt, das den Schlüssel enthält, nicht angeben.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k AppStagingDir
/var/app/staging/
```

### get-config-Ausgabeoptionen
<a name="custom-platforms-scripts.get-config.global"></a>

Verwenden Sie die Option `--output`, um das Format des Ausgabeobjekts anzugeben. Gültige Werte sind `JSON` (Standard) und `YAML`. Dies ist eine globale Option. Sie müssen es vor dem Befehlsnamen angeben.

Im folgenden Beispiel werden Werte für Konfigurationsoptionen im YAML-Format zurückgegeben.

```
$ /opt/elasticbeanstalk/bin/get-config --output YAML optionsettings
aws:elasticbeanstalk:application:environment:
  JDBC_CONNECTION_STRING: ""
aws:elasticbeanstalk:container:tomcat:jvmoptions:
  JVM Options: ""
  Xms: 256m
  Xmx: 256m
aws:elasticbeanstalk:environment:proxy:
  ProxyServer: nginx
  StaticFiles:
        - ""
aws:elasticbeanstalk:healthreporting:system:
  SystemType: enhanced
aws:elasticbeanstalk:hostmanager:
  LogPublicationControl: "false"
```

## Pkg-Repo
<a name="custom-platforms-scripts.pkg-repo"></a>

**Anmerkung**  
Das `pkg-repo`-Tool ist nicht für Umgebungen verfügbar, die auf Amazon-Linux-2023-Plattformen basieren. Sie können Paket- und Betriebssystemupdates jedoch manuell auf eine AL2 023-Instanz anwenden. Weitere Informationen finden Sie unter [Verwalten von Paketen und Betriebssystem-Updates](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) im *Benutzerhandbuch für Amazon Linux 2023*

In dringenden Fällen müssen Sie Ihre EC2 Amazon-Instances möglicherweise mit einem Amazon Linux 2-Sicherheitspatch aktualisieren, der noch nicht mit den erforderlichen Elastic Beanstalk-Plattformversionen veröffentlicht wurde. Sie können standardmäßig keine manuelle Aktualisierung für Ihre Elastic-Beanstalk-Umgebungen durchführen. Dies liegt daran, dass die Plattformversionen an eine bestimmte Version des Amazon Linux 2-Repositorys gesperrt sind. Diese Sperre stellt sicher, dass Instances unterstützte und konsistente Softwareversionen ausführen. Für dringende Fälle erlaubt das Tool `pkg-repo` eine Problemumgehung. Sie können Yum-Pakete in Amazon Linux 2 manuell aktualisieren, wenn Sie es in einer Umgebung installieren müssen, bevor es in einer neuen Elastic-Beanstalk-Plattformversion veröffentlicht wird.

Das Tool `pkg-repo` der Amazon Linux 2-Plattformen bietet die Möglichkeit, die `yum` Paket-Repositorys zu entsperren. Sie können dann manuell eine **yum update** für einen Sicherheitspatch durchführen. Umgekehrt können Sie der Aktualisierung folgen, indem Sie das Tool verwenden, um die Yum-Paket-Repositorys zu sperren, um weitere Aktualisierungen zu verhindern. Das `pkg-repo` Tool ist im `/opt/elasticbeanstalk/bin/pkg-repo` Verzeichnis aller EC2 Instances in Ihren Elastic Beanstalk Beanstalk-Umgebungen verfügbar.

Änderungen, die das `pkg-repo` Tool verwenden, werden nur an der EC2 Instance vorgenommen, auf der das Tool verwendet wird. Sie wirken sich nicht auf andere Instances aus und verhindern nicht zukünftige Aktualisierungen der Umgebung. Die Beispiele später in diesem Thema erklären, wie Sie die Änderungen auf alle Instances anwenden können, indem Sie die `pkg-repo`-Befehle aus Skripts und Konfigurationsdateien verwenden.

**Warnung**  
Wir empfehlen dieses Tool für die meistenBenutzer. Alle manuellen Änderungen, die auf eine Version der freigeschalteten Plattform angewendet werden, gelten als Out-of-Band. Diese Option ist nur für Benutzer unter dringenden Umständen geeignet, die die folgenden Risiken akzeptieren können:  
Für Paketversionen können nicht garantiert werden, dass sie über alle Instances hinweg in Ihren Umgebungen konsistent sind.
Wir empfehlen das Tool `pkg-repo` für die meisten Benutzer. Sie wurden nicht auf Elastic Beanstalk unterstützten Plattformen getestet und überprüft.
Wir empfehlen dringend, Best Practices anzuwenden, die Test- und Backout-Pläne beinhalten. Um Best Practices zu vereinfachen, können Sie die Elastic Beanstalk Beanstalk-Konsole und die EB-CLI verwenden, um eine Umgebung zu klonen und eine Umgebung auszutauschen. URLs Weitere Informationen zur Verwendung dieser Vorgänge finden Sie unter [BluBlue/Green-Bereitstellungen](using-features.CNAMESwap.md) im Kapitel *Managing environments* (Verwalten von Umgebungen) in diesem Handbuch.

Wenn Sie vorhaben, Yum-Repository-Konfigurationsdateien manuell zu bearbeiten, führen Sie zuerst das Tool `pkg-repo` aus. Das Tool `pkg-repo` funktioniert in einer Amazon Linux 2-Umgebung mit manuell bearbeiteten Yum-Repository-Konfigurationsdateien möglicherweise nicht wie vorgesehen. Dies liegt daran, dass das Tool die Konfigurationsänderungen möglicherweise nicht erkennt.

Weitere Informationen zum Amazon Linux-Paket-Repository finden Sie unter dem Thema [Paket-Repository](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#package-repository) im * EC2 Amazon-Benutzerhandbuch*.

### pkg-repo-Befehle
<a name="custom-platforms-scripts.pkg-repo.commands"></a>

Verwenden Sie die folgende Syntax, um einen der Befehle des Tools `pkg-repo` auszuführen.

```
$ /opt/elasticbeanstalk/bin/pkg-repo command [options]
```

Folgende `pkg-repo`-Befehle müssen ausgeführt werden:
+ **lock**— Sperrt das `yum`-Paketrepositorys für eine bestimmte Version
+ **unlock**— Entsperrt das `yum`-Paketrepositorys aus einer bestimmten Version
+ **status**— Listet alle `yum`-Paket-Repositorys und ihren aktuellen Sperrstatus auf
+ **help**— Zeigt allgemeine Hilfe oder Hilfe für einen Befehl an

Die Optionen gelten für die folgenden Befehle:
+ `lock`, `unlock` und `status ` — Optionen: `-h`, `--help`oder keine (Standard).
+ `help` — Optionen: `lock`, `unlock`, `status` oder keine (Standard).



Im folgenden Beispiel wird der Befehl **unlock** ausgeführt:

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo unlock
Amazon Linux 2 core package repo successfully unlocked
Amazon Linux 2 extras package repo successfully unlocked
```

Im folgenden Beispiel wird der Befehl **lock** ausgeführt:

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo lock
Amazon Linux 2 core package repo successfully locked
Amazon Linux 2 extras package repo successfully locked
```

Im folgenden Beispiel wird der Befehl **status** ausgeführt:

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo status
Amazon Linux 2 core package repo is currently UNLOCKED
Amazon Linux 2 extras package repo is currently UNLOCKED
```

Im folgenden Beispiel wird der **help**-Befehl für den **lock**-Befehl ausgeführt.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help lock
```

Im folgenden Beispiel wird der **help**-Befehl für das Tool `pkg-repo` ausgeführt.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help
```

Sie können `pkg-repo` testen, indem Sie SSH verwenden, um eine Verbindung zu einer Instance in Ihrer Elastic Beanstalk-Umgebung herzustellen. Eine SSH-Option ist der EB CLI [**eb ssh**](eb3-ssh.md) Befehl.

**Anmerkung**  
Die Tool `pkg-repo` benötigt zum Ausführen Stammbenutzer-Berechtigungen. Wenn Sie einen Zugriffsberechtigungsfehler erhalten, führen Sie den Befehl unter `sudo` erneut aus.  
Sie müssen `sudo` nicht hinzufügen, wenn Sie das Tool in den Skripts verwenden, die Sie in Ihrer Umgebung bereitstellen. Elastic Beanstalk führt alle Ihre Skripte als Stammbenutzer aus.

### Beispiele für pkg-repo
<a name="custom-platforms-scripts.pkg-repo.examples"></a>

Der vorherige Abschnitt enthält Befehlszeilenbeispiele für Tests auf einer einzelnen EC2 Instanz einer Elastic Beanstalk Beanstalk-Umgebung. Diese Vorgehensweise kann beim Testen hilfreich sein. Es aktualisiert jedoch jeweils nur eine Instance, daher ist es nicht praktisch, Änderungen an allen Instances in einer Umgebung anzuwenden.

Ein pragmatischerer Ansatz ist die Verwendung von [Plattform-Hook](platforms-linux-extend.hooks.md)-Skripten oder einer [`.ebextensions`](ebextensions.md) Konfigurationsdatei, um die Änderungen auf alle Instances konsistent anzuwenden.

Im folgenden Beispiel wird `pkg-repo` aus einer Konfigurationsdatei im [`.ebextensions`](ebextensions.md)-Folder aufgerufen. Elastic Beanstalk führt die Befehle in der `update_package.config`-Datei aus, wenn Sie das Quell-Bundle der Anwendung bereitstellen.

```
.ebextensions
└── update_package.config
```

Um die neueste Version des *Docker*-Pakets zu erhalten, gibt diese Konfiguration das *Docker*-Paket im **yum update**-Befehl an.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update docker -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

Bei dieser Konfiguration werden keine Pakete im **yum update**-Befehl angegeben. Alle verfügbaren Updates werden als Ergebnis angewendet.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

Das folgende Beispiel ruft `pkg-repo` von einem Bash-Skript als [Plattform-Hook](platforms-linux-extend.hooks.md) auf. Elastic Beanstalk führt die `update_package.sh`-Skriptdatei aus, die sich in dem Unterverzeichnis `prebuild` befindet.

```
.platform
└── hooks
    └── prebuild
        └── update_package.sh
```

Um die neueste Version des *Docker*-Pakets zu erhalten, gibt dieses Skript das *Docker*-Paket im **yum update**-Befehl an. Wenn der Paketname ausgelassen wird, werden alle verfügbaren Updates angewendet. Das vorherige Beispiel der Konfigurationsdatei zeigt dies.

```
### update_package.sh ###

#!/bin/bash

/opt/elasticbeanstalk/bin/pkg-repo unlock
yum update docker -y
/opt/elasticbeanstalk/bin/pkg-repo lock
yum clean all -y
rm -rf /var/cache/yum
```

## download-source-bundle (Nur Amazon Linux AMI)
<a name="custom-platforms-scripts.download"></a>

Auf Amazon Linux AMI-Plattformbranchen (Vorgänger von Amazon Linux 2) bietet Elastic Beanstalk ein zusätzliches Tool, `download-source-bundle`. Verwenden Sie dieses, um den Quellcode Ihrer Anwendung während der Bereitstellung Ihrer Plattform herunterzuladen. Das Tool steht unter `/opt/elasticbeanstalk/bin/download-source-bundle` zur Verfügung.

Das Beispielskript `00-unzip.sh` befindet sich auf Umgebungs-Instances im Ordner `appdeploy/pre`. Es demonstriert, wie `download-source-bundle` verwendet wird, um den Anwendungsquellcode während der Bereitstellung in den Ordner `/opt/elasticbeanstalk/deploy/appsource` herunterzuladen.