Python-Anwendung in der flexiblen App Engine-Umgebung erstellen
Regions-ID
REGION_ID
ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r
in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.
In dieser Kurzanleitung wird gezeigt, wie Sie eine Anwendung erstellen und bereitstellen, die eine kurze Nachricht anzeigt. Sie können die Beispielanwendung in diesem Schnellstart für jede unterstützte Version von Python verwenden, indem Sie die Laufzeitversion und das Betriebssystem in Ihrer app.yaml
Datei angeben.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Zusätzliche Voraussetzungen
Initialisieren Sie die App Engine-Anwendung mit Ihrem Projekt und wählen Sie die Region aus:
gcloud app create --project=[YOUR_PROJECT_ID]
Wählen Sie bei entsprechender Aufforderung die Region aus, in der sich die App Engine-Anwendung befinden soll.
Installieren Sie Folgendes auf Ihrem lokalen Computer:
Mit dem folgenden Befehl installieren Sie die gcloud-Komponente, die die App Engine-Erweiterung für Python enthält:
gcloud components install app-engine-python
Bereiten Sie Ihre Umgebung für die Python-Entwicklung vor. Es empfiehlt sich, in Ihrem System die neueste Version von Python,
pip
und die anderen verwandten Tools installiert zu haben. Eine Anleitung finden Sie im Einrichtungsleitfaden zur Python-Entwicklungsumgebung.
App Engine-Standorte
App Engine ist regional, was bedeutet, dass sich die Infrastruktur, in der Ihre Anwendungen ausgeführt werden, in einer bestimmten Region befindet und Google sie so verwaltet, dass sie redundant in allen Zonen innerhalb dieser Region verfügbar ist.
Die Erfüllung der Latenz-, Verfügbarkeits- oder Langlebigkeitsanforderungen ist der wichtigste Gesichtspunkt bei der Auswahl der Region, in der Ihre Anwendungen ausgeführt werden sollen. Sie können im Allgemeinen die Region auswählen, die den Nutzern Ihrer Anwendung am nächsten ist. Sie sollten jedoch die Standorte berücksichtigen, an denen App Engine verfügbar ist, sowie die Standorte der anderen Google Cloud-Produkte und -Dienste, die Ihre Anwendung nutzt. Eine Nutzung von Diensten über mehrere Standorte kann die Latenz der Anwendung sowie die Preise beeinflussen.
Sie können die Region einer Anwendung nicht mehr ändern, nachdem Sie sie festgelegt haben.
Wenn Sie bereits eine App Engine-Anwendung erstellt haben, können Sie die Region mit einer der folgenden Methoden aufrufen:
Führen Sie den Befehl
gcloud app describe
aus:Öffnen Sie das App Engine-Dashboard in der Google Cloud Console. Die Region wird oben auf der Seite angezeigt.
Hello-World-Anwendung herunterladen
Wir haben eine Hello-World-Anwendung für App Engine entwickelt, damit Sie schnell ein Gefühl für die Bereitstellung einer Anwendung in Google Cloud entwickeln können.
Klonen Sie das Repository der Hello-World-Beispielanwendung auf dem lokalen Computer:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Sie können das Beispiel auch als ZIP-Datei herunterladen und extrahieren.
Wechseln Sie zu dem Verzeichnis, das den Beispielcode enthält:
cd python-docs-samples/appengine/flexible/hello_world
Hello World auf lokalem Computer ausführen
So führen Sie die Hello World App auf einem lokalen Computer aus:
Mac OS/Linux
- Erstellen Sie eine isolierte Python-Umgebung:
python3 -m venv env
source env/bin/activate
- Wenn Sie sich nicht in dem Verzeichnis befinden, das den Beispielcode enthält, wechseln Sie zu dem Verzeichnis, das den Beispielcode
hello_world
enthält: Installieren Sie dann Abhängigkeiten:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- Führen Sie die Anwendung aus:
python main.py
- Geben Sie im Webbrowser die folgende Adresse ein:
http://localhost:8080
Wenn Sie Cloud Shell verwenden, klicken Sie in der Symbolleiste auf Webvorschau und wählen Sie stattdessen Vorschau auf Port 8080 aus.
Windows
Führen Sie Ihre Python-Pakete mit PowerShell aus.
- Wechseln Sie zu Ihrer Installation von PowerShell.
- Klicken Sie mit der rechten Maustaste auf die Verknüpfung zu PowerShell und starten Sie diese als Administrator.
- Erstellen Sie eine isolierte Python-Umgebung.
python -m venv env
.\env\Scripts\activate
- Gehen Sie zu Ihrem Projektverzeichnis und installieren Sie die Abhängigkeiten: Wenn Sie sich nicht in dem Verzeichnis befinden, das den Beispielcode enthält, wechseln Sie zum Verzeichnis mit dem Beispielcode
hello_world
. Installieren Sie dann Abhängigkeiten:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- Führen Sie die Anwendung aus:
python main.py
- Geben Sie im Webbrowser die folgende Adresse ein:
http://localhost:8080
Auf der Seite wird die Nachricht Hello World aus der Beispielanwendung angezeigt. Drücken Sie im Terminalfenster Strg + C, um den Webserver zu beenden.
Hello World in App Engine bereitstellen und ausführen
So stellen Sie die App in der flexiblen App Engine-Umgebung bereit:-
Führen Sie den folgenden Befehl im Verzeichnis
hello_world
aus, um die Hello World-Anwendung bereitzustellen:gcloud app deploy
Hier finden Sie Informationen zu optionalen Flags.
Häufig verwendete
gcloud
-Befehls-Flags- Verwenden Sie das Flag
--version
, um eine eindeutige ID festzulegen, die die Version Ihrer Anwendung angibt. Andernfalls wird automatisch eine ID generiert. Beispiel:--version [YOUR_VERSION_ID]
-
Verwenden Sie das Flag
--project
, um eine andere Google Cloud-Projekt-ID als jene anzugeben, die Sie imgcloud
-Tool als Standard initialisiert haben. Beispiel:--project [YOUR_PROJECT_ID]
Beispiel:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Weitere Informationen zum Bereitstellen der Anwendung über die Befehlszeile finden Sie unter Anwendung bereitstellen und testen. Eine Liste aller Befehls-Flags finden Sie in der Referenz zu
gcloud app deploy
. - Verwenden Sie das Flag
-
Starten Sie den Browser und rufen Sie die Anwendung unter
https://PROJECT_ID.REGION_ID.r.appspot.com
auf. Dabei istgcloud app browse
PROJECT_ID
Ihre Google Cloud-Projekt-ID.
Dieses Mal wird die Seite mit der Nachricht "Hello World" von einem Webserver bereitgestellt, der auf einer App Engine-Instanz ausgeführt wird.
Das wars! Sie haben Ihre erste App Engine-Anwendung in der flexiblen App Engine-Umgebung bereitgestellt!
Wenn beim Bereitstellen Ihrer Anwendung Fehler aufgetreten sind, lesen Sie die Tipps zur Fehlerbehebung.In den folgenden Abschnitten finden Sie Informationen zur Bereinigung sowie Links für mögliche weitere Schritte.
Bereinigen
Zur Vermeidung von Gebühren können Sie Ihr Google Cloud-Projekt löschen und so die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beenden.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Nächste Schritte
Informationen zur Plattform
Sie wissen jetzt, wie Sie Anwendungen in App Engine entwickeln und bereitstellen. Nun können Sie sich mit den weiteren Bereichen von Google Cloud vertraut machen. Sie haben bereits die Google Cloud CLI installiert, mit der Sie die Tools zur Interaktion mit Produkten wie z. B. Cloud SQL, Cloud Storage, Firestore nutzen können.
Informationen zur flexiblen App Engine-Umgebung
Im Folgenden finden Sie weitere Themen zu App Engine:
Hello World-Code prüfen
Die Hello-World-Anwendung ist die einfachste realisierbare App Engine-Anwendung, da sie nur einen Dienst enthält, nur eine Version hat und sich der gesamte Code im Stammverzeichnis der Anwendung befindet. Der folgende Abschnitt zeigt die einzelnen Dateien der Anwendung im Detail.
main.py
Die "Hello World"-Anwendung ist eine sehr einfache Flask-Anwendung mit nur einer Datei.
app.yaml
In der app.yaml
-Datei wird die folgende Konfiguration für Ihre Anwendung beschrieben:
- Legt
env: flex
fest. Dies gibt an, dass Ihre Anwendung die flexible App Engine-Umgebung verwendet. Gibt die von der App verwendete Laufzeit an. Wenn Sie die Einstellung
runtime_version
ausschließen, verwendet App Engine die neueste Python-Version als Standardversion für Ihre Anwendung.entrypoint
weist App Engine an, die Anwendung zu starten. Diese Anwendung verwendetgunicorn
, um die Python-App als Alternative zum Entwicklungsserver von Flask bereitzustellen (wird beim lokalen Ausführen verwendet). Die Variable$PORT
wird von App Engine beim Starten der Anwendung festgelegt. Weitere Informationen zuentrypoint
finden Sie unter Anwendungsstart.
Weitere Informationen zur Python-Laufzeit finden Sie unter Python-Laufzeit
Weitere Informationen zur Entwicklung der Anwendung und zur Nutzung der Vorteile von Versionen und Diensten erhalten Sie unter Überblick über App Engine
Weitere Informationen zu den Konfigurationseinstellungen für App Engine finden Sie unter Anwendung mit app.yaml konfigurieren.
requirements.txt
requirements.txt
und der Python-Paketmanager pip
deklarieren und installieren Anwendungsabhängigkeiten. Für "Hello World" sind Flask (Web-Framework) und Gunicorn (WSGI-Server) erforderlich.
requirements.txt
gibt die Bibliotheken an, die sowohl lokal als auch beim Bereitstellen in App Engine installiert werden.