Kurzanleitung für Python in der flexiblen App Engine-Umgebung

Regions-ID

REGION_ID ist ein abgekürzter Code, den Google basierend auf 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. Das Einbinden von REGION_ID.r in App Engine-URLs ist für vorhandene Anwendungen optional und wird bald für alle neuen Anwendungen erforderlich sein.

Für einen reibungslosen Übergang wird App Engine nach und nach für die Verwendung von Regions-IDs aktualisiert. Wenn wir Ihr Google Cloud-Projekt noch nicht aktualisiert haben, wird für Ihre Anwendung keine Regions-ID angezeigt. Da die ID für vorhandene Anwendungen optional ist, müssen Sie URLs nicht aktualisieren oder andere Änderungen vornehmen, sobald die Regions-ID für Ihre vorhandenen Anwendungen verfügbar ist.

Hier finden Sie weitere Informationen zu Regions-IDs.

In dieser Kurzanleitung erfahren Sie, wie Sie eine kleine App Engine-Anwendung erstellen, die eine kurze Nachricht anzeigt.

Hinweise

Bevor Sie diese Kurzanleitung ausführen und bereitstellen, müssen Sie das Cloud SDK installieren und dann ein Cloud-Projekt für App Engine einrichten:

  1. Laden Sie das Cloud SDK herunter und installieren Sie es:

    SDK herunterladen

    Hinweis: Wenn Sie das Cloud SDK bereits installiert haben, aktualisieren Sie es mit dem folgenden Befehl:

    gcloud components update
    
  2. Erstellen Sie ein neues Projekt:

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    Ersetzen Sie [YOUR_PROJECT_ID] durch einen String, der Ihr Projekt eindeutig identifiziert. Beispiel: my-project-24.

    Prüfen Sie, ob das Projekt erstellt wurde:

    gcloud projects describe [YOUR_PROJECT_ID]
    

    Die Projektdetails könnten so aussehen:

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. 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.

  4. Die Abrechnung für das Projekt muss aktiviert sein. Es muss ein Rechnungskonto mit dem Projekt verknüpft sein, damit die Anwendung in App Engine bereitgestellt werden kann.

    Abrechnung aktivieren

    Solange die Bereitstellung Ihrer flexiblen Umgebung aktiv ist, verursacht sie Kosten. Bereinigen Sie Ihr Projekt, wenn Sie fertig sind, um weitere Kosten zu vermeiden.

  5. Installieren Sie folgende Abhängigkeiten:

    • 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
      

  6. 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, d. h., die Infrastruktur, in der Ihre Anwendungen ausgeführt werden, befindet sich in einer bestimmten Region und Google verwaltet sie so, 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 Apps 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 App nicht ändern, nachdem Sie sie festgelegt haben.

Wenn Sie bereits eine App Engine-Anwendung erstellt haben, können Sie sich die Region mit einer der folgenden Methoden anzeigen lassen:

Dieser Schnellstart zeigt eine einfache Python-Anwendung, die mit dem Web-Framework Flask geschrieben wurde und in App Engine bereitgestellt werden kann. Auch wenn in diesem Beispiel Flask verwendet wird, können Sie ein beliebiges Web-Framework einsetzen, das die oben beschriebenen Anforderungen erfüllt. Alternative Frameworks sind z. B. Django, Pyramid, Bottle und web.py.

Hello World-App herunterladen

Wir haben eine einfache Hello-World-Anwendung für Python entwickelt, damit Sie schnell ein Gefühl für die Bereitstellung einer Anwendung in der Google Cloud entwickeln können.

  1. 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.

  2. 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

  1. Erstellen Sie eine isolierte Python-Umgebung in einem Verzeichnis außerhalb Ihres Projekts und aktivieren Sie diese:
    python3 -m venv env
    source env/bin/activate
  2. Gehen Sie zu Ihrem Projektverzeichnis und installieren Sie die Abhängigkeiten:
    cd YOUR_PROJECT
    pip install  -r requirements.txt
  3. Führen Sie die Anwendung aus:
    python main.py
  4. Geben Sie im Webbrowser die folgende Adresse ein:
    http://localhost:8080

Windows

Führen Sie Ihre Python-Pakete mit PowerShell aus.

  1. Wechseln Sie zu Ihrer Installation von PowerShell.
  2. Klicken Sie mit der rechten Maustaste auf die Verknüpfung von PowerShell und starten Sie diese als Administrator.
  3. Erstellen Sie eine isolierte Python-Umgebung in einem Verzeichnis außerhalb Ihres Projekts und aktivieren Sie diese:
    python -m venv env
    env\Scripts\activate
  4. Gehen Sie zu Ihrem Projektverzeichnis und installieren Sie die Abhängigkeiten:
    cd YOUR_PROJECT
    pip install -r requirements.txt
  5. Führen Sie die Anwendung aus:
    python main.py
  6. 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-Anwendung in App Engine bereitstellen und ausführen

So erstellen Sie die Anwendung in der flexiblen App Engine-Umgebung:

  1. Führen Sie den folgenden Befehl im Verzeichnis hello_world aus, um die Anwendung "Hello World" 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]
    • Mit dem Flag --project können Sie eine andere Cloud Console-Projekt-ID als jene angeben, die Sie im gcloud-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.

  2. Starten Sie den Browser und rufen Sie die Anwendung unter https://PROJECT_ID.REGION_ID.r.appspot.com auf.

    gcloud app browse
    Dabei ist 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 Python-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.

Clean-up

Um Gebühren zu vermeiden, können Sie Ihr Cloud-Projekt löschen und so die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beenden.

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite "Ressourcen verwalten"

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen .
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

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 das Cloud SDK installiert, mit dem Sie die Tools zur Interaktion mit Produkten wie z. B. Cloud SQL, Cloud Storage, Firestore nutzen können.

In unserem Schnellstart für die Bookshelf-Anwendung finden Sie eine Schritt-für-Schritt-Anleitung, in der Sie erfahren, wie Sie eine Anwendung erstellen, die die gesamte Plattform und nicht nur App Engine verwendet.

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.

import logging

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    """Return a friendly HTTP greeting."""
    return 'Hello World!'

@app.errorhandler(500)
def server_error(e):
    logging.exception('An error occurred during a request.')
    return """
    An internal error occurred: <pre>{}</pre>
    See logs for full stacktrace.
    """.format(e), 500

if __name__ == '__main__':
    # This is used when running locally. Gunicorn is used to run the
    # application on Google App Engine. See entrypoint in app.yaml.
    app.run(host='127.0.0.1', port=8080, debug=True)

app.yaml

In der app.yaml Datei wird die Bereitstellungskonfiguration einer Anwendung beschrieben:

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

Hier gibt app.yaml die von der Anwendung verwendete Laufzeit an und legt mit env: flex fest, dass die Anwendung die flexible Umgebung verwendet.

entrypoint weist App Engine an, die Anwendung zu starten. Diese Anwendung verwendet gunicorn, 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 zu entrypoint finden Sie unter Anwendungsstart.

Darüber hinaus wird mit dem optionalen Bereich runtime_config der Wert python_version zur Verwendung von Python 3 festgelegt. Wenn python_version nicht angegeben ist, wird standardmäßig Python 2 verwendet. Sie können auch explizit python_version: 2 angeben.

  • 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 finden Sie unter App Engine –Übersicht.

  • Weitere Informationen zu den Konfigurationseinstellungen für App Engine finden Sie unter App mit app.yaml konfigurieren.

requirements.txt

requirements.txt und der Python-Paketmanager pip werden zur Festlegung und Installation von Anwendungsabhängigkeiten verwendet. Für "Hello World" sind Flask (Web-Framework) und Gunicorn (WSGI-Server) erforderlich.

Flask==1.1.2
gunicorn==20.0.4

requirements.txt gibt die Bibliotheken an, die sowohl lokal als auch beim Bereitstellen in App Engine installiert werden.