

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.

# Verwenden der Elastic Beanstalk Python-Plattform
<a name="create-deploy-python-container"></a>

In diesem Thema wird beschrieben, wie Sie Ihre Python-Anwendungen auf Elastic Beanstalk konfigurieren, erstellen und ausführen.

AWS Elastic Beanstalk unterstützt eine Reihe von Plattformzweigen für verschiedene Versionen der Programmiersprache Python. Eine vollständige Liste finden Sie unter [Python](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.python) im Dokument *AWS Elastic Beanstalk Plattformen*.

Die Python-Webanwendungen können hinter einem Proxyserver mit WSGI ausgeführt werden. Elastic Beanstalk stellt [Gunicorn](https://gunicorn.org/) als Standard-WSGI-Server bereit. 

Sie können eine `Procfile` zu Ihrem Quell-Bundle hinzufügen, um den WSGI-Server für Ihre Anwendung anzugeben und zu konfigurieren. Details hierzu finden Sie unter [Konfiguration des WSGI-Servers mit einem Profil auf Elastic Beanstalk](python-configuration-procfile.md).

Mit den von Pipenv erstellten `Pipfile`- und `Pipfile.lock`-Dateien können Sie Python-Paketabhängigkeiten und andere Anforderungen angeben. Details zur Angabe von Abhängigkeiten finden Sie unter [Angeben von Abhängigkeiten mithilfe einer Anforderungsdatei auf Elastic Beanstalk](python-configuration-requirements.md).

Elastic Beanstalk bietet [Konfigurationsoptionen](command-options.md), mit denen Sie die Software anpassen können, die auf den EC2 Instances in Ihrer Elastic Beanstalk Beanstalk-Umgebung ausgeführt wird. Sie können die für Ihre Anwendung erforderlichen Umgebungsvariablen konfigurieren, die Protokollrotation an Amazon S3 aktivieren und die Ordner in der Anwendungsquelle, die statische Dateien enthalten, den vom Proxy-Server verwendeten Pfaden zuordnen.

In der Elastic Beanstalk-Konsole sind Konfigurationsoptionen für das [Ändern der Konfiguration einer ausgeführten Umgebung](environment-configuration-methods-after.md) verfügbar. Um zu verhindern, dass die Umgebungskonfiguration beim Beenden verloren geht, können Sie [gespeicherte Konfigurationen](environment-configuration-savedconfig.md) verwenden, um Ihre Einstellungen zu speichern und sie später für eine andere Umgebung zu übernehmen.

Zum Speichern der Einstellungen im Quellcode können Sie [Konfigurationsdateien](ebextensions.md) einschließen. Die Einstellungen in Konfigurationsdateien werden jedes Mal verwendet, wenn Sie eine Umgebung erstellen oder Ihre Anwendung bereitstellen. Mit Konfigurationsdateien können Sie auch Pakete installieren, Skripts ausführen und andere Instance-Anpassungen bei Bereitstellungen vornehmen.

Die in der Elastic Beanstalk-Konsole angewendeten Einstellungen überschreiben die entsprechenden Einstellungen in Konfigurationsdateien, wenn vorhanden. So sind Standardeinstellungen in Konfigurationsdateien möglich, die Sie mit umgebungsspezifischen Einstellungen in der Konsole überschreiben können. Für weitere Informationen zur Rangfolge und zu anderen Methoden zum Ändern der Einstellungen siehe [Konfigurationsoptionen](command-options.md).

Bei Python-Paketen, die über `pip` bereitgestellt werden, können Sie eine Anforderungsdatei in den Stamm des Anwendungsquellcodes aufnehmen. Elastic Beanstalk installiert alle Abhängigkeitspakete, die während der Bereitstellung in einer Anforderungsdatei angegeben sind. Details hierzu finden Sie unter [Angeben von Abhängigkeiten mithilfe einer Anforderungsdatei auf Elastic Beanstalk](python-configuration-requirements.md).

Details zu den verschiedenen Erweiterungsmöglichkeiten einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter [Erweitern von Elastic Beanstalk-Linux-Plattformen](platforms-linux-extend.md).

## Konfigurieren Ihrer Python-Umgebung
<a name="create-deploy-python-container-console"></a>

Mit den Python-Plattformeinstellungen können Sie das Verhalten Ihrer EC2 Amazon-Instances optimieren. Sie können die EC2 Amazon-Instance-Konfiguration der Elastic Beanstalk Beanstalk-Umgebung mithilfe der Elastic Beanstalk Beanstalk-Konsole bearbeiten.

Verwenden Sie die Elastic Beanstalk Beanstalk-Konsole, um Python-Prozesseinstellungen zu konfigurieren AWS X-Ray, zu aktivieren, die Protokollrotation zu Amazon S3 zu aktivieren und Variablen zu konfigurieren, die Ihre Anwendung aus der Umgebung lesen kann.

**So konfigurieren Sie Ihre Python-Umgebung in der Elastic Beanstalk-Konsole**

1. Öffnen Sie die [Elastic Beanstalk Beanstalk-Konsole](https://console.aws.amazon.com/elasticbeanstalk) und wählen Sie in der Liste **Regionen** Ihre aus. AWS-Region

1. Wählen Sie im Navigationsbereich **Environments (Umgebungen)** aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

1. Wählen Sie im Navigationsbereich **Configuration (Konfiguration)** aus.

1. Wählen Sie in der Konfigurationskategorie **Updates, monitoring and logging ** (Updates, Überwachung und Protokolle) die Option **Edit** (Bearbeiten) aus.

### Python-Einstellungen
<a name="python-console-settings"></a>
+ **Proxy server (Proxy-Server)** – Der Proxyserver, der in Ihren Umgebungs-Instances verwendet werden soll. Standardmäßig wird nginx verwendet.
+ **WSGI-Pfad** – Der Name oder Pfad zu Ihrer Hauptanwendungsdatei. Beispiel: `application.py` oder `django/wsgi.py`.
+ **NumProcesses**— Die Anzahl der Prozesse, die auf jeder Anwendungsinstanz ausgeführt werden sollen.
+ **NumThreads**— Die Anzahl der Threads, die in jedem Prozess ausgeführt werden sollen.

### AWS X-Ray Einstellungen
<a name="python-console-xray"></a>
+ **X-Ray-Daemon** — Führen Sie den AWS X-Ray Daemon aus, um Trace-Daten aus dem zu verarbeiten. [AWS X-Ray-SDK für Python](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-python.html)

### Protokolloptionen
<a name="create-deploy-python-container.console.logoptions"></a>

Im Abschnitt mit den Protokolloptionen hat zwei Einstellungen:
+ **Instance profile (Instance-Profil)** – Gibt das Instance-Profil an, das zum Zugriff auf den entsprechenden Amazon S3-Bucket der Anwendung berechtigt ist.
+ **Rotation der Protokolldateien nach Amazon S3 aktivieren** — Gibt an, ob Protokolldateien für die EC2 Amazon-Instances Ihrer Anwendung in den Amazon S3-Bucket kopiert werden, der Ihrer Anwendung zugeordnet ist.

### Statische Dateien
<a name="python-platform-staticfiles"></a>

Um die Leistung zu verbessern, können Sie den Abschnitt **Static files** (Statische Dateien) benutzen, um den Proxy-Server so zu konfigurieren, dass er statische Dateien (z. B. HTML oder Bilder) aus Verzeichnissen innerhalb Ihrer Webanwendung bereitstellt. Legen Sie für jedes Verzeichnis den virtuellen Pfad zum Verzeichnis-Mapping fest. Wenn der Proxy-Server eine Anfrage nach einer Datei unter dem angegebenen Pfad erhält, stellt er die Datei direkt bereit, anstatt die Anfrage an Ihre Anwendung weiterzuleiten.

Weitere Informationen zum Konfigurieren statischer Dateien mit der Elastic Beanstalk-Konsole finden Sie unter [Bereitstellen von statischen Dateien](environment-cfg-staticfiles.md).

Standardmäßig stellt der Proxy-Server in einer Python-Umgebung alle Dateien im Ordner `static` unter dem Pfad `/static` bereit. Wenn beispielsweise die Anwendungsquelle eine Datei mit dem Namen `logo.png` im Ordner `static` enthält, wird diese vom Proxy-Server unter `{{subdomain}}.elasticbeanstalk.com/static/logo.png` an die Benutzer weitergeleitet. Sie können zusätzliche Zuweisungen konfigurieren, wie in diesem Abschnitt erklärt.

### Umgebungseigenschaften
<a name="create-deploy-python-custom-container-envprop"></a>

Mithilfe von Umgebungseigenschaften stellen Sie Informationen für die Anwendung bereit und konfigurieren Umgebungsvariablen. Beispielsweise können Sie eine Umgebungseigenschaft mit dem Namen `CONNECTION_STRING` mit einer Verbindungszeichenfolge erstellen, über die Ihre Anwendung eine Verbindung zu einer Datenbank herstellen kann.

Innerhalb der in Elastic Beanstalk ausgeführten Python-Umgebung können Sie diese Werte im `os.environ`-Wörterbuch von Python finden. Weitere Informationen finden Sie unter [http://docs.python. org/library/os](http://docs.python.org/library/os.html).html.

Der Code für den Zugriff auf Schlüssel und Parameter sollte wie folgt aussehen:

```
import os
endpoint = os.environ['{{API_ENDPOINT}}']
```

Umgebungseigenschaften können auch Informationen für ein Framework bereitstellen. Sie können beispielsweise eine Eigenschaft mit dem Namen `DJANGO_SETTINGS_MODULE` erstellen und so Django zur Verwendung eines bestimmten Einstellungsmoduls konfigurieren. Abhängig von der Umgebung könnte der Wert z. B. `development.settings` oder `production.settings` lauten.

Weitere Informationen finden Sie unter [Umgebungsvariablen und andere Softwareeinstellungen](environments-cfg-softwaresettings.md).

## Namespaces der Python-Konfiguration
<a name="python-namespaces"></a>

Mithilfe einer [Konfigurationsdatei](ebextensions.md) können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Die Konfigurationsoptionen können [plattformspezifisch](command-options-specific.md) sein oder für [alle Plattformen](command-options-general.md) im Elastic Beanstalk-Service als Ganzes gelten. *Die Konfigurationsoptionen sind in Namespaces organisiert.*

Die Python-Plattform definiert Optionen in den Namespaces `aws:elasticbeanstalk:environment:proxy`, `aws:elasticbeanstalk:environment:proxy:staticfiles` und `aws:elasticbeanstalk:container:python`.

In der folgenden Beispielkonfigurationsdatei werden Einstellungen für Konfigurationsoptionen angegeben, mit denen die `DJANGO_SETTINGS_MODULE`-Umgebungseigenschaft, zwei Optionen für statische Dateien, die das Verzeichnis `statichtml` dem Pfad `/html` und das Verzeichnis `staticimages` dem Pfad `/images` zuordnen, sowie weitere Einstellungen im Namespace `[aws:elasticbeanstalk:container:python](command-options-specific.md#command-options-python)` erstellt und der Apache-Proxy-Server ausgewählt werden. Dieser Namespace enthält Optionen, mit denen Sie den Speicherort des WSGI-Skripts im Quellcode und die Anzahl der Threads und Prozesse, die in WSGI ausgeführt werden sollen, angeben können.

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: production.settings
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: apache
  aws:elasticbeanstalk:environment:proxy:staticfiles:
    /html: statichtml
    /images: staticimages
  aws:elasticbeanstalk:container:python:
    WSGIPath: ebdjango.wsgi:application
    NumProcesses: 3
    NumThreads: 20
```

**Hinweise**  
Wenn Sie eine Amazon Linux AMI Python-Plattformversion (Vorgängerversion von Amazon Linux 2) verwenden, ersetzen Sie den Wert für `WSGIPath` durch `ebdjango/wsgi.py`. Der Wert in diesem Beispiel ist für einen Gunicorn WSGI-Server bestimmt, der von Amazon Linux AMI-Plattformversionen nicht unterstützt wird.
Darüber hinaus verwenden diese älteren Plattformversionen einen anderen Namespace für die Konfiguration statischer Dateien:.—`aws:elasticbeanstalk:container:python:staticfiles`. Er hat die gleichen Optionsnamen und die gleiche Semantik wie der standardmäßige Namespace für statische Dateien.

Konfigurationsdateien unterstützen außerdem zahlreiche Schlüssel für die weitere [Anpassung der Software auf den Umgebungs-Instances](customize-containers-ec2.md). In diesem Beispiel wird der Schlüssel [packages (Pakete)](customize-containers-ec2.md#linux-packages) für die Memcached-Installation mit `yum` und [Container-Befehlen](customize-containers-ec2.md#linux-container-commands) verwendet, um Befehle für die Konfiguration des Servers während der Bereitstellung auszuführen.

```
packages:
  yum:
    libmemcached-devel: '0.31'

container_commands:
  collectstatic:
    command: "django-admin.py collectstatic --noinput"
  01syncdb:
    command: "django-admin.py syncdb --noinput"
    leader_only: true
  02migrate:
    command: "django-admin.py migrate"
    leader_only: true
  03wsgipass:
    command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf'
  99customize:
    command: "scripts/customize.sh"
```

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie die Konfigurationsoptionen auch unter Verwendung der Konsole, gespeicherter Konfigurationen, der EB CLI oder der AWS CLI einrichten. Weitere Informationen finden Sie unter [Konfigurationsoptionen](command-options.md).

## `python3`Die ausführbare Datei
<a name="python3-executable"></a>

Die Version der `python3` ausführbaren Datei, die auf EC2 Instances in Elastic Beanstalk-Python-Umgebungen verfügbar ist, entspricht nicht immer derselben Python-Version, die von der Plattform verwendet wird. `/usr/bin/python3`Verweist beispielsweise auf der Plattform Python 3.12 AL2 023 auf Python 3.9. Dies liegt daran, dass Python 3.9 das *System Python* auf AL2 023 ist. Weitere Informationen finden Sie unter [Python in AL2 023](https://docs.aws.amazon.com/linux/al2023/ug/python.html) im *Amazon Linux 2023 User Guide*. Sie können auf eine ausführbare Datei zugreifen, die der von der Plattform verwendeten Python-Version entspricht, an einem versionierten Speicherort (z. B.`/usr/bin/python3.12`) oder im `bin` Verzeichnis der virtuellen Anwendungsumgebung (z. B.`/var/app/venv/staging-LQM1lest/bin/python3`). Die Plattform verwendet die richtige ausführbare Python-Datei, die dem Plattformzweig entspricht. 