1. Zanim zaczniesz
Aplikacje App Engine są łatwe w tworzeniu, obsłudze i skalowaniu w miarę zmian w ruchu i potrzebach związanych z przechowywaniem danych. W przypadku App Engine nie musisz utrzymywać serwerów. Wystarczy przesłać aplikację, aby była gotowa do użycia.
Aplikacje App Engine są automatycznie skalowane na podstawie przychodzącego ruchu. Równoważenie obciążenia, mikrousługi, autoryzacja, bazy danych SQL i NoSQL, buforowanie w pamięci, dzielenie ruchu, rejestrowanie, obsługa wersji, wdrażanie i wycofywanie zmian oraz skanowanie pod kątem bezpieczeństwa są obsługiwane natywnie i w dużym stopniu konfigurowalne.
Standardowe środowisko App Engine i środowisko elastyczne App Engine obsługują wiele języków programowania, w tym Java, Python, PHP, NodeJS i Go. Oba środowiska zapewniają programistom maksymalną elastyczność w zakresie działania aplikacji. Każde środowisko ma określone zalety. Więcej informacji znajdziesz w artykule Wybór środowiska App Engine.
Dowiesz się, jak wdrożyć aplikację Spring Boot w standardowym środowisku App Engine. Środowisko standardowe skaluje się w dół do zera instancji, gdy nikt z niego nie korzysta, i automatycznie skaluje się w górę.
Wymagania wstępne
- Znajomość języka programowania Java i narzędzi
- Znajomość standardowych edytorów tekstu systemu Linux, takich jak Vim, Emacs i nano.
Co musisz zrobić
- Tworzenie aplikacji Spring Boot w Javie w App Engine
Czego potrzebujesz
- projekt Google Cloud,
- przeglądarka, np. Google Chrome;
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
- Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się nim przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu. - Warto wiedzieć, że istnieje też trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego laboratorium nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z programu bezpłatnego okresu próbnego o wartości 300 USD.
Cloud Shell
Będziesz używać Cloud Shell, czyli środowiska wiersza poleceń działającego w Google Cloud.
Aktywowanie Cloud Shell
- W konsoli Cloud kliknij Aktywuj Cloud Shell
.

Jeśli uruchamiasz Cloud Shell po raz pierwszy, zobaczysz ekran pośredni z opisem tego środowiska. Jeśli pojawił się ekran pośredni, kliknij Dalej.

Uzyskanie dostępu do środowiska Cloud Shell i połączenie się z nim powinno zająć tylko kilka chwil.

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Większość zadań w tym module, a być może wszystkie, możesz wykonać w przeglądarce.
Po połączeniu z Cloud Shell zobaczysz, że uwierzytelnianie zostało już przeprowadzone, a projekt jest już ustawiony na Twój identyfikator projektu.
- Aby potwierdzić, że uwierzytelnianie zostało przeprowadzone, uruchom w Cloud Shell to polecenie:
gcloud auth list
Wynik polecenia
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Aby potwierdzić, że polecenie gcloud zna Twój projekt, uruchom w Cloud Shell to polecenie:
gcloud config list project
Wynik polecenia
[core] project = <PROJECT_ID>
Jeśli nie, możesz go ustawić za pomocą tego polecenia:
gcloud config set project <PROJECT_ID>
Wynik polecenia
Updated property [core/project].
3. Tworzenie nowej aplikacji internetowej Spring Boot
Po uruchomieniu Cloud Shell możesz użyć wiersza poleceń, aby wygenerować nową aplikację Spring Boot za pomocą Spring Initializr.
$ 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. Aktualizowanie pliku pom.xml Maven
Aplikację serwera Java można wdrożyć na 2 sposoby: za pomocą wtyczki Maven App Engine Plugin lub wtyczki Gradle App Engine Plugin albo przez wdrożenie katalogu pakietu war. Do wdrożenia aplikacji użyjesz wtyczki Maven App Engine.
Dodawanie wtyczki Maven App Engine
Zaktualizuj pom.xml, aby uwzględnić wtyczkę Google Cloud, która upraszcza proces wdrażania. Do edycji pliku możesz użyć edytora Vim, nano lub Emacs.
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. Dodawanie deskryptora App Engine
- Aby wdrożyć aplikację w standardowym środowisku App Engine, musisz utworzyć nowy plik deskryptora
src/main/appengine/app.yaml.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Edytuj plik
src/main/appengine/app.yamli dodaj do niego te informacje:
src/main/appengine/app.yaml
runtime: java17
instance_class: F1
6. Dodawanie kontrolera
Dodaj nowy kontroler, który zwraca "hello world!" w DemoApplication.java.
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. Lokalne uruchamianie aplikacji
- Sprawdź, czy zmienna JAVA_HOME jest ustawiona na prawidłową wersję JDK:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
- Aplikację Spring Boot możesz uruchomić za pomocą wtyczki Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- Po uruchomieniu aplikacji kliknij Podgląd w przeglądarce
na pasku narzędzi Cloud Shell i wybierz Podejrzyj na porcie 8080.

W przeglądarce otworzy się karta, która połączy się z uruchomionym serwerem.

8. Wdrożenie aplikacji w App Engine
- Najpierw zainicjuj projekt, aby móc uruchamiać aplikacje App Engine. Zainicjuj też projekt, aby działał w centralnym regionie Stanów Zjednoczonych.
$ 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
- Następnie wdróż aplikację w standardowym środowisku App Engine, uruchamiając
mvn appengine:deploy.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Po wdrożeniu aplikacji możesz ją otworzyć, wpisując w przeglądarce adres http://<project-id>.appspot.com lub używając tego polecenia w Cloud Shell:
$ gcloud app browse ... [It may print out the URL for your app]
9. Czyszczenie
Nie możesz usunąć aplikacji App Engine, ale możesz ją wyłączyć.
W konsoli Google Cloud kliknij kolejno App Engine i Settings, a potem wybierz Disable Application:

Możesz też usunąć cały projekt:
$ gcloud projects delete YOUR-PROJECT-ID
10. Gratulacje
Napiszesz swoją pierwszą aplikację internetową App Engine.