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
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. Siehe Python in der AWS Elastic Beanstalk Eine vollständige Liste finden Sie im Dokument Plattformen.
Die Python-Webanwendungen können hinter einem Proxyserver mit ausgeführt WSGI werden. Elastic Beanstalk stellt Gunicorn
Sie können Ihrem Quellpaket einen hinzufügenProcfile
, um den WSGI Server für Ihre Anwendung zu spezifizieren und zu konfigurieren. Details hierzu finden Sie unter Konfiguration des WSGI Servers mit einem Profil auf Elastic Beanstalk.
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.
Elastic Beanstalk bietet Konfigurationsoptionen, 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 verfügbar. Um zu verhindern, dass die Umgebungskonfiguration beim Beenden verloren geht, können Sie gespeicherte Konfigurationen 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 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.
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.
Details zu den verschiedenen Erweiterungsmöglichkeiten einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter Erweitern von Elastic Beanstalk-Linux-Plattformen.
Konfigurieren Ihrer Python-Umgebung
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 die Python-Prozesseinstellungen zu konfigurieren, aktivieren Sie AWS X-Ray, aktivieren Sie die Protokollrotation zu Amazon S3 und konfigurieren Sie Variablen, die Ihre Anwendung aus der Umgebung lesen kann.
So konfigurieren Sie Ihre Python-Umgebung in der Elastic Beanstalk-Konsole
Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole
und wählen Sie in der Liste Regionen Ihre AWS-Region. -
Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.
Anmerkung
Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.
Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.
-
Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.
Python-Einstellungen
-
Proxy server (Proxy-Server) – Der Proxyserver, der in Ihren Umgebungs-Instances verwendet werden soll. Standardmäßig wird nginx verwendet.
-
WSGIPfad — Der Name oder Pfad zu Ihrer Hauptanwendungsdatei. Beispiel:
application.py
oderdjango/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
-
X-Ray-Daemon — Starte den AWS X-Ray Daemon zur Verarbeitung von Trace-Daten aus dem AWS X-Ray-SDK for Python.
Protokolloptionen
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
Um die Leistung zu verbessern, können Sie den Abschnitt Statische Dateien verwenden, um den Proxy-Server so zu konfigurieren, dass statische Dateien (z. HTML B. Bilder) aus einer Reihe von Verzeichnissen in Ihrer Webanwendung bereitgestellt werden. 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.
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
an die Benutzer weitergeleitet. Sie können zusätzliche Zuweisungen konfigurieren, wie in diesem Abschnitt erklärt.subdomain
.elasticbeanstalk.com/static/logo.png
Umgebungseigenschaften
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.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 Umgebungseigenschaften und andere Softwareeinstellungen.
Namespaces der Python-Konfiguration
Mithilfe einer Konfigurationsdatei können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Die Konfigurationsoptionen können plattformspezifisch sein oder für alle Plattformen 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
erstellt und der Apache-Proxy-Server ausgewählt werden. Dieser Namespace enthält Optionen, mit denen Sie den Speicherort des WSGI Skripts in Ihrem Quellcode und die Anzahl der Threads und Prozesse angeben können, in denen es ausgeführt werden soll. WSGI
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 AMI Linux-Python-Plattformversion (vor Amazon Linux 2) verwenden, ersetzen Sie den Wert für
WSGIPath
durchebdjango/wsgi.py
. Der Wert im Beispiel funktioniert mit dem WSGI Gunicorn-Server, der auf Amazon AMI Linux-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. In diesem Beispiel wird der Schlüssel packages (Pakete) für die Memcached-Installation mit yum
und Container-Befehlen 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 auch Konfigurationsoptionen über die Konsole, gespeicherte Konfigurationen, den EB oder CLI den AWS CLI. KonfigurationsoptionenWeitere Informationen finden Sie unter.