Benutzerdefinierte Laufzeitanwendung in der flexiblen App Engine-Umgebung erstellen
Regions-ID
REGION_ID
ist ein abgekürzter Code, den Google anhand 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. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r
in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.
Mit benutzerdefinierten Laufzeiten können Sie Anwendungen erstellen, die in einer von einem Dockerfile definierten Umgebung ausgeführt werden. Mit einem Dockerfile können Sie Sprachen und Pakete verwenden, die nicht zur Google Cloud Platform gehören. Außerdem haben Sie die Möglichkeit, dieselben Ressourcen und Tools wie in der flexiblen App Engine-Umgebung zu verwenden.
In dieser Schnellstartanleitung wird ein nginx-Webserver mit einer benutzerdefinierten Laufzeit in App Engine gestartet.
Hinweis
Bevor Sie in dieser Schnellstartanleitung die Beispielanwendung ausführen, müssen Sie Ihre Umgebung einrichten und ein neues Google Cloud-Projekt für App Engine erstellen:
Erstellen Sie mithilfe der Google Cloud Console ein neues Google Cloud-Projekt:
Öffnen Sie die Google Cloud Console:
Klicken Sie auf Projekt erstellen und benennen Sie das neue Google Cloud-Projekt.
Aktivieren Sie die Abrechnung im neuen Google Cloud-Projekt, indem Sie ein neues Rechnungskonto erstellen oder ein bestehendes auswählen:
Laden Sie die Google Cloud CLI herunter und initialisieren Sie die gcloud CLI:
Führen Sie den folgenden
gcloud
-Befehl aus, um eine App Engine-Anwendung zu erstellen. Geben Sie dabei an, in welcher geografischen Region die Anwendung ausgeführt werden soll:gcloud app create
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 Anwendungen 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 Anwendung nicht mehr ändern, nachdem Sie sie festgelegt haben.
Wenn Sie bereits eine App Engine-Anwendung erstellt haben, können Sie die Region mit einer der folgenden Methoden aufrufen:
Führen Sie den Befehl
gcloud app describe
aus:Öffnen Sie das App Engine-Dashboard in der Google Cloud Console. Die Region wird oben auf der Seite angezeigt.
Hello World-App herunterladen
Wählen Sie eine der folgenden Optionen aus, um die "Hello World"-Beispielanwendung von GitHub auf Ihren Computer herunterzuladen:
Klonen Sie die "Hello World"-Beispielanwendung aus diesem Repository:
git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samples
Laden Sie das Beispiel als ZIP-Datei herunter und extrahieren Sie diese anschließend in ein lokales Verzeichnis.
Rufen Sie das Verzeichnis
nginx
auf, in dem sich der Beispielcode befindet. Beispiel:cd appengine-custom-runtimes-samples/nginx
Hello World auf einem lokalen Computer ausführen
Sie können die Beispielanwendung testen, indem Sie Docker herunterladen und installieren und anschließend den Hello World-Container auf dem lokalen Computer ausführen.
Es gibt keine spezifischen Schritte für App Engine, sodass Sie die Beispielanwendung mit den von Ihnen bevorzugten Tools und Verfahren testen können.
"Hello World" in App Engine bereitstellen
Wenn Sie bereit sind, die Beispielanwendung in App Engine bereitzustellen, führen Sie diese Schritte aus:
Führen Sie in dem Verzeichnis, in dem sich
app.yaml
undDockerfile
befinden, den folgenden Befehl aus:gcloud app deploy
Starten Sie mit dem folgenden Befehl Ihren Browser, um zu prüfen, wie Ihre Anwendung unter
https://PROJECT_ID.REGION_ID.r.appspot.com
ausgeführt wird:gcloud app browse
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]
-
Verwenden Sie das Flag
--project
, um eine andere Google Cloud-Projekt-ID als jene anzugeben, die Sie imgcloud
-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
.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Nächste Schritte
Weitere Informationen zu Dockerfiles finden Sie in der Dockerfile-Referenz.
Codeüberprüfung
"Hello World" ist die am einfachsten realisierbare App Engine-Anwendung, da sie nur einen einzigen Container erstellt, der nur eine einzige Version und einen einzigen Dienst ausführt. In diesem Abschnitt werden die einzelnen Dateien der Anwendung im Detail beschrieben.
app.yaml
Gibt die Konfiguration der App an. Die
app.yaml
-Datei muss sich im selben Verzeichnis befinden wie dieDockerfile
-Datei.Der Eintrag
runtime: custom
weist App Engine an, nach einemDockerfile
zu suchen, das das Image Ihrer Laufzeit definiert, undenv: flex
gibt an, dass Sie die Bereitstellung in der flexiblen Umgebung vornehmen.Weitere Informationen finden Sie in der
app.yaml
-Referenz.Dockerfile
Definiert die Anleitung, mit der das Docker-Image für den Container der Beispielanwendung erstellt wird. Die Datei
Dockerfile
muss sich im selben Verzeichnis befinden wie die Dateiapp.yaml
. DiesesDockerfile
installiert den nginx-Webserver und kopiert einige einfache Konfigurationseinstellungen.Der Befehl FROM erstellt mit dem offiziellen Docker-Image für den nginx-Webserver ein Basis-Image.
Mit diesem
Dockerfile
ist "nginx" in Ihrem Container-Image enthalten und der gesamte Inhalt im Verzeichniswww/
steht Ihrer Anwendung zur Verfügung.
Die "Hello World"-Beispielanwendung enthält außerdem die Datei nginx.conf
mit den grundlegenden nginx-Konfigurationsinformationen und die Datei index.html
, die als Stammseite für den nginx-Webserver dient.