Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Erste Schritte mit Python in Compute Engine

In dieser Anleitung werden die ersten Schritte mit Compute Engine erläutert. Wenn Sie eine "Hello World"-Python-Webanwendung für Compute Engine bereitstellen möchten, folgen Sie dieser Anleitung. Hilfe zu den ersten Schritten mit App Engine finden Sie in der App Engine-Standardumgebung.

Lernziele

  • "Hello World"-Beispielanwendung mit Cloud Shell herunterladen und bereitstellen
  • "Hello World"-Beispielanwendung in einer einzelnen Compute Engine-Instanz bereitstellen

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Aktivieren Sie die Compute Engine API.

    Aktivieren Sie die API

  5. Öffnen Sie die Anwendung in der Google Cloud Console über Cloud Shell.

    Zu Cloud Shell

    Cloud Shell bietet Ihnen direkt über den Browser Befehlszeilenzugriff auf Ihre Cloud-Ressourcen. Öffnen Sie Cloud Shell im Browser und klicken Sie auf Fortfahren, um den Beispielcode herunterzuladen und ins Anwendungsverzeichnis zu wechseln.

  6. Konfigurieren Sie in Cloud Shell das gcloud-Tool, um das neue Google Cloud-Projekt zu verwenden:
    # Configure gcloud for your project
    gcloud config set project YOUR_PROJECT_ID
    

Anwendung in Cloud Shell ausführen

  1. Installieren Sie in Cloud Shell die Abhängigkeiten Ihrer Anwendung mit pip:

    pip3 install -r requirements.txt --user
    
  2. Installieren Sie den Gunicorn-HTTP-Server:

    pip3 install gunicorn --user
    
  3. Führen Sie den Gunicorn-HTTP-Server aus:

    ~/.local/bin/gunicorn -b :8080 main:app
    
  4. Klicken Sie in Cloud Shell auf Webvorschau und wählen Sie dann Vorschau auf Port 8080 aus. Ein neues Fenster mit der ausgeführten Anwendung wird geöffnet.

  5. Drücken Sie Strg+C, um den lokalen Webserver zu beenden.

Auf einer einzelnen Instanz bereitstellen

In diesem Abschnitt wird die Ausführung einer einzelnen Instanz der Anwendung in Compute Engine beschrieben.

Bereitstellung einer einzelnen Instanz

Mit Cloud Shell können Sie eine einzelne Instanz in einer Compute Engine-VM bereitstellen, auf der Ihre Anwendung ausgeführt wird.

Instanz mithilfe eines Startskripts initialisieren

Sie müssen Ihre Instanz anweisen, den Code herunterzuladen und auszuführen. Eine Instanz kann ein Startskript haben, das bei jedem Start oder Neustart der Instanz ausgeführt wird.

# Install Stackdriver logging agent
curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
sudo bash install-logging-agent.sh

# Install or update needed software
apt-get update
apt-get install -yq git supervisor python python-pip
pip install --upgrade pip virtualenv

# Account to own server process
useradd -m -d /home/pythonapp pythonapp

# Fetch source code
export HOME=/root
git clone https://github.com/GoogleCloudPlatform/getting-started-python.git /opt/app

# Python environment setup
virtualenv -p python3 /opt/app/gce/env
source /opt/app/gce/env/bin/activate
/opt/app/gce/env/bin/pip install -r /opt/app/gce/requirements.txt

# Set ownership to newly created account
chown -R pythonapp:pythonapp /opt/app

# Put supervisor configuration in proper place
cp /opt/app/gce/python-app.conf /etc/supervisor/conf.d/python-app.conf

# Start service via supervisorctl
supervisorctl reread
supervisorctl update

Das Startskript führt folgende Aufgaben durch:

  • Installiert Python 3 und Pip.

  • Installiert den Cloud Logging-Agent. Der Agent erfasst automatisch Logs aus syslog.

  • Installiert Supervisor, um die Anwendung als Daemon auszuführen.

  • Es klont den Quellcode der Anwendung aus den Cloud Source Repositories und installiert Abhängigkeiten.

  • Konfiguriert Supervisor zum Ausführen der Anwendung. Supervisor sorgt dafür, dass die Anwendung neu gestartet wird, wenn sie unerwartet beendet oder von einem Administrator oder einem anderen Prozess abgebrochen wird. Außerdem sendet Supervisor die Standarddatenströme stdout und stderr an syslog, damit sie vom Logging-Agent erfasst werden.

Compute Engine-Instanz erstellen und konfigurieren

  1. Erstellen Sie eine Compute Engine-Instanz:

    Linux/macOS

    MY_INSTANCE_NAME="my-app-instance"
    ZONE=us-central1-a
    
    gcloud compute instances create $MY_INSTANCE_NAME \
        --image-family=debian-9 \
        --image-project=debian-cloud \
        --machine-type=g1-small \
        --scopes userinfo-email,cloud-platform \
        --metadata-from-file startup-script=startup-script.sh \
        --zone $ZONE \
        --tags http-server

    Windows

    gcloud compute instances create my-app-instance ^
        --image-family=debian-9 ^
        --image-project=debian-cloud ^
        --machine-type=g1-small ^
        --scopes userinfo-email,cloud-platform ^
        --metadata-from-file startup-script=gce/startup-script.sh ^
        --zone us-central1-f ^
        --tags http-server
    

    Ersetzen Sie die Zone durch eine Entwicklungszone, z. B. us-central1-a. Weitere Informationen zu Regionen und Zonen finden Sie unter Geografie und Regionen.

    Hierdurch wird eine neue Instanz erstellt, deren Zugriff auf Google Cloud-Dienste ermöglicht und das Startskript ausgeführt. Der Instanzname lautet my-app-instance.

  2. Prüfen Sie den Fortschritt der Instanzerstellung:

    gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
    

    Ersetzen Sie YOUR_ZONE durch die Zone, in der Sie die Instanz bereitgestellt haben.

    Wenn das Startskript abgeschlossen ist, sehen Sie folgende Meldung:

    startup-script: INFO Finished running startup scripts.
    
  3. Erstellen Sie eine Firewallregel, die Traffic zur Instanz zulässt:

    gcloud compute firewall-rules create default-allow-http-8080 \
        --allow tcp:8080 \
        --source-ranges 0.0.0.0/0 \
        --target-tags http-server \
        --description "Allow port 8080 access to http-server"
    

  4. Rufen Sie die externe IP-Adresse der Instanz ab:

    gcloud compute instances list
    
  5. Geben Sie die folgende URL in Ihren Browser ein, wenn Sie Ihre ausgeführte Anwendung sehen möchten:

    http://YOUR_INSTANCE_IP:8080
    

    Ersetzen Sie YOUR_INSTANCE_IP durch die externe IP-Adresse Ihrer Instanz.

Instanzen verwalten und beobachten

Mit der Cloud Console können Sie Ihre Instanz im Blick behalten und verwalten.

  1. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der Instanz, zu der Sie eine Verbindung herstellen möchten, auf SSH.
  3. Wenn Sie alle von Ihren Compute Engine-Ressourcen generierten Logs anzeigen lassen möchten, rufen Sie die Seite Loganzeige auf. Loganzeige aufrufen

    Cloud Logging wird automatisch so konfiguriert, dass Logs aus verschiedenen gängigen Diensten erfasst werden, einschließlich syslog.

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Projekt löschen

  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 Shut down (Beenden), um das Projekt zu löschen.

Einzelne Ressourcen löschen

gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all
gcloud compute firewall-rules delete default-allow-http-8080

Nächste Schritte