App Engine-Anwendungen lassen sich einfach erstellen, verwalten und skalieren, wenn sich Traffic und Datenspeicheranforderungen ändern. Und bei App Engine müssen keine Server verwaltet werden. Sie laden einfach Ihre App hoch und es kann losgehen.
App Engine-Anwendungen werden auf der Grundlage des eingehenden Traffics automatisch skaliert. Load-Balancing, Mikrodienste, Autorisierung, SQL- und NoSQL-Datenbanken, Memory-Caching, Traffic-Aufteilung, Logging, Suche, Versionsverwaltung, Rollouts und Rollbacks sowie Sicherheitsscans werden nativ unterstützt und können individuell angepasst werden.
Die App Engine-Standardumgebung und die flexible App Engine-Umgebung unterstützen eine Vielzahl von Programmiersprachen, darunter Java, Python, PHP, NodeJS und Go. Die beiden Umgebungen bieten Entwicklern maximale Flexibilität bei der Funktionsweise ihrer App. Jede Umgebung hat bestimmte Stärken. Weitere Informationen finden Sie unter App Engine-Umgebung auswählen.
Sie erfahren, wie Sie eine Spring Boot-Anwendung in der App Engine-Standardumgebung bereitstellen. Die Standardumgebung wird auf null Instanzen herunter- und automatisch wieder hochskaliert, wenn sie nicht verwendet wird.
Voraussetzungen
- Kenntnisse der Java-Programmiersprache und der entsprechenden Tools
- Kenntnisse von standardmäßigen Linux-Texteditoren wie Vim, Emacs und Nano
Aufgabe
- Spring Boot-Java-Anwendung in App Engine erstellen
Voraussetzungen
- Ein Google Cloud-Projekt
- Ein Browser, z. B. Google Chrome
Einrichtung der Umgebung im eigenen Tempo
- Melden Sie sich in der Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder G Suite-Konto haben, müssen Sie eins erstellen.
Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird in diesem Codelab später als PROJECT_ID
bezeichnet.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Google Cloud-Ressourcen verwenden zu können.
Dieses Codelab sollte Sie nicht mehr als ein paar Dollar kosten, aber es könnte mehr sein, wenn Sie sich für mehr Ressourcen entscheiden oder wenn Sie sie laufen lassen.
Neuen Nutzern der Google Cloud steht eine kostenlose Testversion mit einem Guthaben von 300$ zur Verfügung.
Cloud Shell
Sie verwenden Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird.
Cloud Shell aktivieren
- Klicken Sie in der Cloud Console auf Cloud Shell aktivieren
.
Wenn Sie Cloud Shell noch nie gestartet haben, wird ein Zwischenbildschirm angezeigt, auf dem beschrieben wird, was Cloud Shell ist. Klicken Sie in diesem Fall auf Weiter. So sieht dieser einmalige Bildschirm aus:
Die Bereitstellung und Verbindung mit Cloud Shell sollte nur wenige Augenblicke dauern.
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Die meisten, wenn nicht alle Aufgaben in diesem Codelab können einfach mit einem Browser oder Ihrem Chromebook erledigt werden.
Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und das Projekt bereits auf Ihre Projekt-ID eingestellt ist.
- Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list
Befehlsausgabe
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Befehlsausgabe
[core] project = <PROJECT_ID>
Ist dies nicht der Fall, können Sie die Einstellung mit diesem Befehl vornehmen:
gcloud config set project <PROJECT_ID>
Befehlsausgabe
Updated property [core/project].
Nachdem Cloud Shell gestartet wurde, können Sie über die Befehlszeile mit Spring Initializr eine neue Spring Boot-App generieren.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=2.1.8.RELEASE \ -d dependencies=web \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
Es gibt zwei Möglichkeiten, eine Java-Serveranwendung bereitzustellen: entweder mit dem Maven App Engine-Plug-in oder dem Gradle App Engine-Plug-in oder durch Bereitstellen des Paketverzeichnisses war
. Sie verwenden das Maven App Engine-Plug-in, um die App bereitzustellen.
Maven App Engine Plugin hinzufügen
Aktualisieren Sie pom.xml
, um ein Google Cloud-Plug‑in einzufügen, das den Bereitstellungsprozess vereinfacht. Sie können die Datei mit Vim, Nano oder Emacs bearbeiten.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
...
<build>
<plugins>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
- Wenn Sie die App in der App Engine-Standardumgebung bereitstellen möchten, müssen Sie eine neue
src/main/appengine/app.yaml
-Deskriptordatei erstellen.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Bearbeiten Sie die Datei
src/main/appengine/app.yaml
und fügen Sie den folgenden Inhalt hinzu:
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
Fügen Sie einen neuen Controller hinzu, der "hello world!"
in DemoApplication.java
zurückgibt.
src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
- Sie können die Spring Boot-Anwendung mit dem Spring Boot-Plug-in starten:
$ ./mvnw -DskipTests spring-boot:run
- Klicken Sie nach dem Start der App in der Cloud Shell-Symbolleiste auf Webvorschau
und wählen Sie Vorschau auf Port 8080 aus.
Im Browser wird ein Tab geöffnet und eine Verbindung zum gestarteten Server hergestellt.
- Initialisieren Sie zuerst das Projekt, damit App Engine-Apps ausgeführt werden können. Initialisieren Sie das Projekt außerdem für die Ausführung in der Region „Central US“.
$ gcloud app create --region us-central You are creating an app for project [...]. WARNING: Creating an App Engine application for a project is irreversible and the region cannot be changed. More information about regions is at https://cloud.google.com/appengine/docs/locations
- Stellen Sie dann Ihre App in der App Engine-Standardumgebung bereit, indem Sie
mvn appengine:deploy
ausführen.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Nachdem die App bereitgestellt wurde, können Sie sie über die URL http://<project-id>.appspot.com in Ihrem Webbrowser aufrufen oder den folgenden Befehl in Cloud Shell verwenden:
$ gcloud app browse ... [It may print out the URL for your app]
Sie haben Ihre erste App Engine-Webanwendung geschrieben.