Einrichten der Python-Entwicklungsumgebung - AWS Elastic Beanstalk

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.

Einrichten der Python-Entwicklungsumgebung

Richten Sie eine Python-Entwicklungsumgebung ein, um Ihre Anwendung vor der Bereitstellung in AWS Elastic Beanstalk lokal zu testen. In diesem Thema finden Sie die Schritte zum Einrichten der Entwicklungsumgebung sowie Links zu den Installationsseiten nützlicher Tools.

Um die Verfahren in diesem Leitfaden zu befolgen, benötigen Sie ein Befehlszeilen-Terminal oder eine Shell für die Ausführung der Befehle. Befehle werden ggf. in Auflistungen mit einem vorangestellten Eingabeaufforderungssymbol ($) und dem Namen des aktuellen Verzeichnisses angezeigt.

~/eb-project$ this is a command this is output

In Linux und macOS können Sie Ihren bevorzugten Shell- und Paket-Manager verwenden. Unter Windows können Sie das Windows-Subsystem für Linux installieren, um eine Windows-integrierte Version von Ubuntu und Bash zu erhalten.

Allgemeine Einrichtungsschritte und Tools für alle Sprachen finden Sie unter Konfigurieren des Entwicklungscomputers für die Verwendung mit Elastic Beanstalk.

Voraussetzungen

Für alle Python-Anwendungen, die Sie mit Elastic Beanstalk bereitstellen, gelten diese Voraussetzungen:

  1. Eine Python-Version, die der Elastic Beanstalk Python-Plattformversion entspricht, die Ihre Anwendung verwendet.

  2. Das pip-Dienstprogramm für die jeweilige Python-Version. Damit werden Abhängigkeiten für das Projekt installiert und aufgelistet, damit Elastic Beanstalk erkennt, wie die Anwendungsumgebung eingerichtet werden soll.

  3. Die AWS Elastic Beanstalk Befehlszeilenschnittstelle (EB CLI). Damit wird die Anwendung mit den Dateien, die für die Bereitstellung mit Elastic Beanstalk erforderlich sind, initialisiert.

  4. Eine aktive ssh-Installation. Damit wird die Verbindung zu den ausgeführten Instances hergestellt, um eine Bereitstellung zu prüfen oder zu debuggen.

  5. Das virtualenv-Paket. Damit wird eine Umgebung für die Anwendungsentwicklung sowie für Anwendungstests erstellt, sodass die Umgebung von Elastic Beanstalk repliziert werden kann, ohne dass weitere Pakete installiert werden, die die Anwendung nicht benötigt. Installieren Sie das Paket mit dem folgenden Befehl:

    $ pip install virtualenv

Anweisungen zum Installieren von Python, pip und der EB CLI finden Sie unter Installieren der EB CLI.

Verwenden einer virtuellen Umgebung

Sofern die Voraussetzungen erfüllt sind, können Sie eine virtuelle Umgebung mit virtualenv einrichten und die Anwendungsabhängigkeiten installieren. Mithilfe einer virtuellen Umgebung können Sie genau erkennen, welche Pakete die Anwendung benötigt, sodass die erforderlichen Pakete auf den EC2-Instances installiert werden, auf denen die Anwendung ausgeführt wird.

So richten Sie eine virtuelle Umgebung ein
  1. Öffnen Sie ein Befehlszeilenfenster und geben Sie Folgendes ein:

    $ virtualenv /tmp/eb_python_app

    Ersetzen Sie eb_python_app durch einen sinnvollen Namen für die Anwendung (z. B. eignet sich der Name der Anwendung gut dafür). Der Befehl virtualenv erstellt für Sie eine virtuelle Umgebung im angegebenen Verzeichnis und druckt die Ergebnisse seiner Aktionen:

    Running virtualenv with interpreter /usr/bin/python New python executable in /tmp/eb_python_app/bin/python3.7 Also creating executable in /tmp/eb_python_app/bin/python Installing setuptools, pip...done.
  2. Sobald die virtuelle Umgebung bereit ist, starten Sie diese mithilfe des Skripts activate, das Sie im Verzeichnis bin der Umgebung finden. Um die im vorherigen Schritt erstellte Umgebung eb_python_app zu starten, geben Sie beispielsweise Folgendes ein:

    $ source /tmp/eb_python_app/bin/activate

    In der virtuellen Umgebung wird der Name (z. B. (eb_python_app)) am Anfang jeder Eingabeaufforderung angezeigt, damit Sie wissen, dass es sich um eine virtuelle Python-Umgebung handelt.

  3. Führen Sie den Befehl deactivate aus, um die Verwendung Ihrer virtuellen Umgebung zu beenden und zum standardmäßigen Python-Interpreter des Systems mit allen installierten Bibliotheken zurückzukehren.

    (eb_python_app) $ deactivate
Anmerkung

Wenn sie erstellt ist, können Sie die virtuelle Umgebung jederzeit starten, indem Sie das Skript activate erneut ausführen.

Konfigurieren eines Python-Projekts für Elastic Beanstalk

Sie können die Elastic Beanstalk CLI verwenden, um Ihre Python-Anwendungen auf die Bereitstellung mit Elastic Beanstalk vorzubereiten.

So konfigurieren Sie eine Python-Anwendung für die Bereitstellung mit Elastic Beanstalk
  1. Kehren Sie in der virtuellen Umgebung nach oben zum Verzeichnisbaum des Projekts zurück (python_eb_app) und geben Sie Folgendes ein:

    pip freeze >requirements.txt

    Mit diesem Befehl werden die Namen und Versionen der Pakete, die in der virtuellen Umgebung installiert sind, zu requirements.txt kopiert. Wenn beispielsweise das Paket PyYAML in der Version 3.11 in der virtuellen Umgebung installiert ist, enthält die Datei die folgende Zeile:

    PyYAML==3.11

    Auf diese Weise verwendet Elastic Beanstalk dieselben Pakete und Versionen, mit denen Sie die Anwendung entwickelt und getestet haben, um die Python-Umgebung der Anwendung zu replizieren.

  2. Konfigurieren Sie das Repository der EB CLI mit dem Befehl eb init. Folgen Sie den Anweisungen und wählen Sie die Region, die Plattform und andere Optionen aus. Detaillierte Anweisungen finden Sie unter Elastic Beanstalk-Umgebungen mit der EB CLI verwalten.

Standardmäßig sucht Elastic Beanstalk nach einer Datei namens application.py, um die Anwendung zu starten. Falls diese im erstellten Python-Projekt nicht vorhanden ist, sind bestimmte Anpassungen an der Anwendungsumgebung erforderlich. Außerdem müssen Sie Umgebungsvariablen festlegen, damit die Anwendungsmodule geladen werden können. Weitere Informationen finden Sie unter Verwenden der Elastic Beanstalk Python-Plattform.