Blog
Bereitstellung von Containern auf Google App Engine

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 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
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
Unsere Ideen
Weitere Blogs
Contact



