Blog

Bereitstellung von Containern auf Google App Engine

Dennis Vriend

Aktualisiert Oktober 21, 2025
3 Minuten

In meinem letzten Blog über serverlose Anwendungen mit Google App Engine haben wir uns angesehen, wie man eine einfache Flask/Python-basierte Anwendung auf Google App Engine (GAE) erstellt und bereitstellt. 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 in Google App Engine (GAE) Containern 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 meisten gängigen 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.

Benutzerdefinierte Laufzeiten und Container

Um die Ausführung von nicht unterstützten Laufzeiten auf GAE, wie z.B. Haskell, zu unterstützen, bietet Google App Engine Unterstützung für benutzerdefinierte Laufzeiten in der flexiblen GAE-Umgebung. Benutzerdefinierte Laufzeiten werden mit einer Dockerdatei mit einem Basis-Image Ihrer Wahl erstellt.
Wenn Sie benutzerdefinierte Laufzeiten erstellen, muss die Anwendung den Port 8080 abhören,

Beispiel

Im Vergleich zum GAE-Python-Beispiel weist das GAE Custom Runtime-Beispiel die folgenden wesentlichen Unterschiede auf:

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

Die Datei app.yaml definiert die benutzerdefinierte Laufzeit- und Flex-Umgebung.

runtime: custom
env: flex

Der Hauptunterschied ist die Hinzufügung einer Dockerdatei:

FROM 'python:3.7.1-alpine3.8'
ADD requirements.txt /
RUN pip install -r requirements.txt
ADD main.py /
EXPOSE 8080
CMD python main.py

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.
Der Benutzername lautet user und das Passwort password.

Bereitstellen auf App Engine

Der Bereitstellungsprozess von GAE erkennt, dass die Anwendung eine benutzerdefinierte Laufzeit definiert. GAE lädt alle Projektdateien zu GAE hoch und erstellt und lädt automatisch einen Container in die Google Docker Registry namens appengine hoch, die Teil des GCP-Projekts ist.
GAE stellt die Anwendung dann automatisch bereit und führt ein rollierendes Update durch.

Fazit

Der GAE-Arbeitsablauf für eine benutzerdefinierte Laufzeit ist derselbe wie für eine verwaltete Laufzeit. Für eine benutzerdefinierte Laufzeit muss ein Dockerfile hinzugefügt werden, das die Anwendungslaufzeit und die Anwendungsabhängigkeiten definiert. Der Container sollte den Port 8080 freigeben, damit die Anfragen von GAE weitergeleitet werden.

Verfasst von

Dennis Vriend

Contact

Let’s discuss how we can support your journey.