Blog

Serverlose Anwendungen mit Google App Engine

Dennis Vriend

Aktualisiert Oktober 21, 2025
3 Minuten

In meinem letzten Blog über serverlose Anwendungen mit AWS Fargate
haben wir uns angesehen, wie man eine einfache Flask/Python-basierte Anwendung in AWS erstellt. Die Anwendung ist eine Serverless Continuous Running
Application oder "SCRA". Eine SCRA-Anwendung läuft kontinuierlich, hat praktisch keine Beschränkungen hinsichtlich der Codegröße und der Programmiersprachen
, die verwendet werden können, und Sie zahlen nur für das, was Sie verwenden. Vor allem aber müssen Sie bei SCRA-Anwendungen keine Server verwalten.
Dieses Mal werden wir die Anwendung auf Google App Engine (GAE) bereitstellen. Schauen wir uns das mal an!

Google App Engine

GAE ist eine Plattform für serverlose Anwendungen, die
Entwicklern Entwicklungs- und Hosting-Funktionen zur Verfügung stellt. Programme können in den gängigsten Programmiersprachen wie Python, Go und Java entwickelt werden.
GAE bietet die Infrastruktur für die Ausführung von Webanwendungen im Cloud-Maßstab. Die Architektur von GAE ist fest, was
bedeutet, dass GAE für bestimmte Anwendungen wie zustandsabhängige Webanwendungen geeignet ist.

Beispiel

Das Beispielprojekt besteht aus den folgenden Dateien:
, von denen nur app.yaml, main.py und requirements.txt die wichtigsten Dateien sind.

.
├── LICENSE
├── Makefile
├── README.md
├── app.yaml
├── main.py
└── requirements.txt

Die Datei app.yaml ist der Deployment-Deskriptor und enthält eine einzige Zeile, nämlich die Laufzeit:

runtime: python37

Die Datei requirements.txt enthält die Abhängigkeiten für die Anwendung. GAE lädt die Abhängigkeiten automatisch herunter und installiert
zur Verwendung:

flask-basicauth
flask

Die Hauptanwendung ist in main.py definiert, das von GAE untersucht wird, um die Webanwendung einzusetzen:

# [START gae_python37_app]
from flask import Flask, jsonify
from flask_basicauth import BasicAuth

app = Flask(__name__)

app.config['BASIC_AUTH_USERNAME'] = 'user'
app.config['BASIC_AUTH_PASSWORD'] = 'password'
app.config['BASIC_AUTH_FORCE'] = True
basic_auth = BasicAuth(app)

actors = [
    {'id': 1, 'actor': 'William Shatner', 'role': 'James T'},
    {'id': 2, 'actor': 'Leonard Nimoy', 'role': 'Spock'},
    {'id': 3, 'actor': 'DeForest Kelley', 'role': 'Leonard McCoy'},
    {'id': 4, 'actor': 'James Doohan', 'role': 'Montgomery Scott'},
    {'id': 5, 'actor': 'George Takei', 'role': 'Hikaru Sulu'},
    {'id': 6, 'actor': 'Walter Koenig', 'role': 'Pavel Chekov'},
    {'id': 7, 'actor': 'Nichelle Nichols', 'role': 'Nyota Uhura'},
    {'id': 8, 'actor': 'Majel Barrett', 'role': 'Christine Chapel'}
]

@app.route('/')
def hello():
    return 'Hello World!'


@app.route('/actors', methods=['GET'])
def get_persons():
    return jsonify(actors), 200
# [END gae_python37_app]

Um das Beispiel einzusetzen, geben Sie make deploy ein und um die Anwendung aufzurufen, geben Sie make browse ein. Um die Anwendung zu entfernen,
muss sie deaktiviert werden. Eine GAE kann nur über die Webkonsole deaktiviert werden. Melden Sie sich bei console.cloud.google.com an,
wählen Sie Ihr Projekt, navigieren Sie zu GAE, gehen Sie zu Einstellungen und deaktivieren Sie die Anwendung.

Fazit

Aufgrund der vordefinierten Architektur, der verwalteten Infrastruktur und des entwicklerorientierten Workflows sind serverlose Anwendungen
in GAE sehr einfach zu erstellen. Mit einem Minimum an Code können Sie hoch skalierbare Webanwendungen und Webservices erstellen.
Die Plattform verwaltet den Lebenszyklus der Anwendungen und Upgrades. Protokollierung und Überwachung werden von Google Stackdriver bereitgestellt.
Im Vergleich zur Bereitstellung der gleichen Lösung in AWS Fargate
muss eine GAE-Anwendung viel weniger konfiguriert werden. Das nächste Mal werden wir uns die Bereitstellung eines Docker-Containers auf Google App Engine ansehen!

Verfasst von

Dennis Vriend

Contact

Let’s discuss how we can support your journey.