Wdrażanie aplikacji Spring rozruchu w standardowym środowisku App Engine

Aplikacje App Engine są łatwe w tworzeniu, obsłudze i skalowaniu w miarę potrzeby ruchu i ilości miejsca na dane. Dzięki App Engine nie musisz utrzymywać serwerów. Wystarczy, że prześlesz swoją aplikację.

Aplikacje App Engine automatycznie skalują się w zależności od ruchu przychodzącego. Równoważenie obciążenia, mikroserwisy, autoryzacja, bazy danych SQL i NoSQL, pamięć podręczna, podział ruchu, logowanie, wyszukiwanie, obsługa wersji, wdrożenia i przywrócenia, a także skanowanie zabezpieczeń są wspierane natywnie i można je dostosować.

Standardowe środowisko App Engine i elastyczne środowisko App Engine obsługują wiele języków programowania, takich jak Java, Python, PHP, NodeJS i Go. Te dwa środowiska dają programistom większą elastyczność w działaniu aplikacji. Każde środowisko ma swoje silne strony. Więcej informacji znajdziesz w sekcji Wybieranie środowiska App Engine.

Dowiesz się, jak wdrożyć aplikację Spring Run w standardowym środowisku App Engine. Środowisko standardowe jest skalowane w dół do zera, gdy nikt go nie używa i automatycznie skaluje się w górę.

Wymagania wstępne

  • Znajomość języka programowania i narzędzi Java
  • znajomości standardowych edytorów tekstu systemu Linux, takich jak Vim, Emacs czy nano.

Co chcesz zrobić

  • Jak utworzyć aplikację w wersji Spring Java na platformie App Engine

Czego potrzebujesz

  • Projekt Google Cloud
  • Przeglądarka, na przykład Google Chrome.

Konfiguracja środowiska we własnym tempie

  1. Zaloguj się w Cloud Console i utwórz nowy projekt lub ponownie wykorzystaj istniejący. Jeśli nie masz jeszcze konta Gmail lub G Suite, musisz je utworzyć.

Zapamiętaj identyfikator projektu, unikalną nazwę we wszystkich projektach Google Cloud (powyższa nazwa została już użyta i nie będzie działać). W ćwiczeniach nazywamy je później PROJECT_ID.

  1. Aby móc używać zasobów Google Cloud, musisz najpierw włączyć płatności w Cloud Console.

Ćwiczenia z programowania nie powinny kosztować więcej niż kilka dolarów, ale mogą być większe, jeśli zdecydujesz się wykorzystać więcej zasobów lub pozostawisz to uruchomione.

Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnej wersji próbnej 300 USD.

Cloud Shell

Będziesz używać Cloud Shell, czyli środowiska poleceń uruchamianego w Google Cloud.

Aktywowanie Cloud Shell

  1. W Cloud Console kliknij Aktywuj Cloud Shell .

Jeśli nie korzystasz jeszcze z Cloud Shell, wyświetli się pośredni ekran (w części strony widocznej po przewinięciu), na którym widać, co to jest. Jeśli tak jest, kliknij Dalej (tj. nie zobaczysz tego ponownie). Tak wygląda jednorazowy ekran:

Udostępnienie usługi Cloud Shell i połączenie się z nią powinno zająć kilka minut.

Ta maszyna wirtualna jest wyposażona we wszystkie potrzebne narzędzia dla programistów. Oferuje trwały katalog domowy o pojemności 5 GB oraz działa w Google Cloud, co znacznie zwiększa wydajność sieci i uwierzytelnianie. Znaczna część (lub nawet całość) zadań z tego ćwiczenia z programowania można wykonać w przeglądarce lub na Chromebooku.

Po połączeniu z Cloud Shell powinno być widoczne, że projekt jest już uwierzytelniony, a projekt jest już ustawiony na jego identyfikator.

  1. Uruchom następujące polecenie w Cloud Shell, aby potwierdzić, że jesteś uwierzytelniony:
gcloud auth list

Polecenie wyjściowe

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

Polecenie wyjściowe

[core]
project = <PROJECT_ID>

Jeśli nie, możesz ustawić ją za pomocą tego polecenia:

gcloud config set project <PROJECT_ID>

Polecenie wyjściowe

Updated property [core/project].

Po uruchomieniu Cloud Shell możesz użyć wiersza poleceń, aby wygenerować nową aplikację Spring Run.

$ 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

Istnieją 2 sposoby wdrażania aplikacji serwera Java – za pomocą wtyczki Maven App Engine lub wtyczki Gradle App Engine albo za pomocą katalogu pakietu war. Do wdrożenia aplikacji będziesz używać wtyczki Maven App Engine.

Dodawanie wtyczki Maven App Engine

Zaktualizuj usługę pom.xml, aby uwzględnić wtyczkę Google Cloud, która upraszcza proces wdrażania. Do edytowania pliku możesz użyć 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.1.0</version>
        <configuration>
          <version>1</version>
          <projectId>GCLOUD_CONFIG</projectId>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
</project>
  1. 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
  1. Edytuj plik src/main/appengine/app.yaml i dodaj tę treść:

src/main/appengine/app.yaml

runtime: java11
instance_class: F4

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
@RestController
public class DemoApplication {
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }

  @GetMapping("/")
  public String hello() {
    return "hello world!";
  }
}
  1. Aplikację możesz uruchomić za pomocą wtyczki Spring rozruchu:
$ ./mvnw -DskipTests spring-boot:run
  1. Po uruchomieniu aplikacji kliknij Podgląd w przeglądarce na pasku narzędzi Cloud Shell i wybierz Podgląd na porcie 8080.

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

  1. Najpierw zainicjuj projekt, aby móc uruchamiać aplikacje App Engine. Zainicjuj projekt również w środkowej części 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
  1. Następnie wdrożysz 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
  1. Po wdrożeniu aplikacji możesz ją otworzyć, otwierając http://<project-id>.appspot.com w przeglądarce lub korzystając z tego polecenia w Cloud Shell:
$ gcloud app browse
... [It may print out the URL for your app]

Wiesz już, jak napisać pierwszą aplikację internetową App Engine.

Więcej informacji