Informationen zu diesem Codelab
1. Hinweis
App Engine-Anwendungen lassen sich einfach erstellen, verwalten und skalieren, wenn sich Ihr Traffic und Ihre 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 automatisch anhand des eingehenden Traffics skaliert. Load-Balancing, Mikrodienste, Autorisierung, SQL- und NoSQL-Datenbanken, Arbeitsspeicher-Caching, Traffic-Aufteilung, Logging, Suche, Versionierung, Roll-outs und Rollbacks sowie Sicherheitsscans werden nativ unterstützt und lassen sich individuell anpassen.
In der App Engine-Standardumgebung und in der flexiblen App Engine-Umgebung werden zahlreiche Programmiersprachen unterstützt, darunter Java, Python, PHP, NodeJS und Go. Mit diesen beiden Umgebungen können Entwickler das Verhalten ihrer App maximieren. Jede Umgebung hat bestimmte Stärken. Weitere Informationen finden Sie unter App Engine-Umgebung auswählen.
Sie erfahren, wie Sie eine Spring-Boot-App in der App Engine-Standardumgebung bereitstellen. Die Standardumgebung wird auf null Instanzen herunterskaliert, wenn sie nicht verwendet wird, und wird automatisch hochskaliert.
Voraussetzungen
- Kenntnisse in der Programmiersprache Java und in Tools
- Kenntnisse in 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
2. Einrichtung und Anforderungen
Umgebung im eigenen Tempo einrichten
- Melden Sie sich in der Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. 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. In diesem Codelab wird sie später als PROJECT_ID
bezeichnet.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Google Cloud-Ressourcen zu nutzen.
Das Durcharbeiten dieses Codelabs sollte nicht mehr als ein paar Euro kosten. Es kann aber auch sein, dass du mehr Ressourcen benötigst oder wenn du sie nicht mehr nutzen möchtest.
Neuen Google Cloud-Nutzern steht ein kostenloser Testzeitraum im Wert 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, sehen Sie einen Zwischenbildschirm („Below the fold“ (mit Scrollen sichtbar) mit einer Beschreibung, worum es sich dabei handelt. Klicken Sie in diesem Fall auf Weiter. In diesem Fall wird es nicht wieder angezeigt. So sieht der einmalige Bildschirm aus:
Die Bereitstellung und Verbindung mit Cloud Shell dauert nur wenige Minuten.
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Es bietet ein 5-GB-Basisverzeichnis und wird in Google Cloud ausgeführt, was die Netzwerkleistung und Authentifizierung erheblich verbessert. In diesem Codelab lassen sich viele oder sogar alle Aufgaben ganz einfach über einen Browser oder Ihr Chromebook erledigen.
Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und dass das Projekt bereits auf Ihre Projekt-ID festgelegt ist.
- Führen Sie in Cloud Shell den folgenden Befehl aus, um zu bestätigen, dass 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].
3. Neue Spring-Boot-Webanwendung erstellen
Nach dem Start von Cloud Shell können Sie über die Befehlszeile eine neue Spring Boot-Anwendung mit Spring Initializr 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
4. Maven pom.xml aktualisieren
Es gibt zwei Möglichkeiten, eine Java-Serveranwendung bereitzustellen: entweder mit dem Maven App Engine-Plug-in oder mit dem Gradle App Engine-Plug-in oder mit dem Paketverzeichnis war
. Verwenden Sie zum Bereitstellen der Anwendung das Maven App Engine-Plug-in.
Maven App Engine-Plug-in hinzufügen
Aktualisieren Sie pom.xml
, um ein Google Cloud-Plug-in einzubinden, 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>
5. App Engine-Descriptor hinzufügen
- Erstellen Sie eine neue
src/main/appengine/app.yaml
-Deskriptor-Datei, um die Anwendung in der App Engine-Standardumgebung bereitzustellen.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Bearbeite die Datei
src/main/appengine/app.yaml
und füge den folgenden Inhalt hinzu:
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
6. Controller hinzufügen
Füge 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!";
}
}
7. App lokal ausführen
- Du kannst die Spring Boot App 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.
Ein Tab im Browser wird geöffnet und eine Verbindung zu dem gestarteten Server hergestellt.
8. Die Anwendung in App Engine bereitstellen
- Initialisieren Sie zuerst das Projekt, um App Engine-Anwendungen ausführen zu können. Initialisieren Sie außerdem das Projekt, um es in der zentralen Region der USA auszuführen.
$ 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 die Anwendung 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
- Wenn die Anwendung bereitgestellt ist, können Sie sie öffnen, indem Sie http://<project-id>.appspot.com in Ihrem Webbrowser öffnen oder den folgenden Befehl in Cloud Shell verwenden:
$ gcloud app browse ... [It may print out the URL for your app]
9. Glückwunsch
Sie haben gelernt, Ihre erste App Engine-Webanwendung zu schreiben.