1. Hinweis
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 schon kann es losgehen.
App Engine-Anwendungen skalieren automatisch basierend auf dem eingehenden Traffic. Load-Balancing, Mikrodienste, Autorisierung, SQL- und NoSQL-Datenbanken, Arbeitsspeicher-Caching, Traffic-Aufteilung, Logging, Suche, Versionsverwaltung, Rollouts und Rollbacks sowie Sicherheitsscans werden nativ unterstützt und sind individuell anpassbar.
Die App Engine-Standardumgebung und die flexible App Engine-Umgebung unterstützen zahlreiche Programmiersprachen, darunter Java, Python, PHP, NodeJS und Go. Beide Umgebungen bieten Entwicklern maximale Flexibilität beim Verhalten 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 skaliert auf null Instanzen herunter, wenn niemand sie verwendet, und skaliert sie automatisch hoch.
Voraussetzungen
- Vertrautheit mit der Programmiersprache und -tools von Java
- 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 für das selbstbestimmte Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.
- Der Projektname ist der Anzeigename für die Projektteilnehmer. Es handelt sich um eine Zeichenfolge, die von Google APIs nicht verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich. Sie kann nach dem Festlegen nicht mehr geändert werden. Die Cloud Console generiert automatisch einen eindeutigen String. ist Ihnen meist egal, was es ist. In den meisten Codelabs musst du auf deine Projekt-ID verweisen, die üblicherweise als
PROJECT_ID
bezeichnet wird. Wenn Ihnen die generierte ID nicht gefällt, können Sie eine weitere zufällige ID generieren. Alternativ können Sie einen eigenen verwenden und nachsehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts erhalten. - Zur Information gibt es noch einen dritten Wert, die Projektnummer, die von manchen APIs verwendet wird. Weitere Informationen zu allen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/APIs verwenden zu können. Dieses Codelab ist kostengünstig. Sie können die von Ihnen erstellten Ressourcen oder das Projekt löschen, um Ressourcen herunterzufahren, um zu vermeiden, dass über diese Anleitung hinaus Kosten anfallen. Neue Google Cloud-Nutzer haben Anspruch auf das kostenlose Testprogramm mit 300$Guthaben.
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 zum ersten Mal starten, wird ein Zwischenbildschirm mit einer Beschreibung der Funktion angezeigt. Wenn ein Zwischenbildschirm angezeigt wird, klicken Sie auf Weiter.
Die Bereitstellung und Verbindung mit Cloud Shell dauert nur einen Moment.
Diese virtuelle Maschine verfügt über alle erforderlichen Entwicklertools. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und wird in Google Cloud ausgeführt. Dadurch werden die Netzwerkleistung und die Authentifizierung erheblich verbessert. Viele, wenn nicht sogar alle Arbeiten in diesem Codelab können mit einem Browser erledigt werden.
Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie authentifiziert sind und das Projekt 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`
- Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt:
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 die Befehlszeile verwenden, um mit Spring Initializr eine neue Spring Boot-Anwendung zu generieren.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=3.0.5 \ -d dependencies=web \ -d type=maven-project \ -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 mithilfe des Maven App Engine-Plug-ins oder des Gradle App Engine-Plug-ins oder durch Bereitstellen des Paketverzeichnisses war
. Die Anwendung wird mit dem Maven App Engine-Plug-in bereitgestellt.
Maven App Engine-Plug-in hinzufügen
Aktualisieren Sie pom.xml
und fügen Sie ein Google Cloud-Plug-in hinzu, 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.4.4</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
5. App Engine-Deskriptor hinzufügen
- Zum Bereitstellen der Anwendung in der App Engine-Standardumgebung 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: java17
instance_class: F1
6. Controller hinzufügen
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
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
// Add the controller.
@RestController
class HelloWorldController {
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
7. App lokal ausführen
- Prüfen Sie, ob für JAVA_HOME die richtige JDK-Version festgelegt ist:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
- 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 Anwendung in der Cloud Shell-Symbolleiste auf Webvorschau und wählen Sie Vorschau auf Port 8080 aus.
In Ihrem Browser wird ein Tab geöffnet und eine Verbindung zum gestarteten Server hergestellt.
8. Die Anwendung in App Engine bereitstellen
- Initialisieren Sie zuerst das Projekt, damit App Engine-Anwendungen ausgeführt werden können. Initialisieren Sie außerdem das Projekt, das in der zentralen Region der USA ausgeführt werden soll.
$ 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 Anwendung mit dem Befehl
mvn appengine:deploy
in der App Engine-Standardumgebung bereit.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Nachdem die Anwendung bereitgestellt wurde, können Sie sie aufrufen, 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. Bereinigen
Sie können eine App Engine-Anwendung nicht löschen, aber Sie können sie deaktivieren.
Rufen Sie in der Google Cloud Console App Engine
und Settings
auf und wählen Sie Disable Application
aus:
Alternativ können Sie das gesamte Projekt löschen:
$ gcloud projects delete YOUR-PROJECT-ID
10. Glückwunsch
Sie haben gelernt, Ihre erste App Engine-Webanwendung zu schreiben.