Приложения App Engine легко создавать, поддерживать и масштабировать по мере изменения потребностей в трафике и хранении данных. С App Engine не нужно обслуживать серверы. Вы просто загружаете приложение, и оно готово к работе.
Приложения App Engine автоматически масштабируются в зависимости от входящего трафика. Балансировка нагрузки, микросервисы, авторизация, базы данных SQL и NoSQL, кэширование памяти, разделение трафика, ведение журналов, поиск, управление версиями, развёртывание и откат, а также сканирование безопасности — всё это поддерживается изначально и обладает широкими возможностями настройки.
Стандартная и гибкая среды App Engine поддерживают множество языков программирования, включая Java, Python, PHP, NodeJS и Go. Эти две среды предоставляют разработчикам максимальную гибкость в выборе поведения приложений. Каждая среда имеет свои преимущества. Подробнее см. в разделе «Выбор среды App Engine» .
Вы научитесь разворачивать приложение Spring Boot в стандартной среде App Engine. Стандартная среда масштабируется до нуля, когда она не используется, и автоматически масштабируется вверх!
Предпосылки
- Знакомство с языком программирования Java и инструментами
- Знание стандартных текстовых редакторов Linux, таких как Vim, Emacs и nano
Что ты будешь делать?
- Как создать приложение Spring Boot Java в App Engine
Что вам понадобится
- Проект Google Cloud
- Браузер, например Google Chrome
Настройка среды для самостоятельного обучения
- Войдите в Cloud Console и создайте новый проект или используйте существующий. (Если у вас ещё нет учётной записи Gmail или G Suite, вам необходимо её создать .)
Запомните идентификатор проекта — уникальное имя для всех проектов Google Cloud (имя, указанное выше, уже занято и не будет вам работать, извините!). Далее в этой практической работе он будет обозначаться как PROJECT_ID
.
- Далее вам необходимо включить биллинг в Cloud Console, чтобы использовать ресурсы Google Cloud.
Выполнение этой лабораторной работы не должно обойтись вам дороже нескольких долларов, но может обойтись дороже, если вы решите использовать больше ресурсов или оставите их запущенными.
Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .
Cloud Shell
Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud.
Активировать Cloud Shell
- В консоли Cloud нажмите «Активировать Cloud Shell» .
.
Если вы никогда раньше не запускали Cloud Shell, вам будет показан промежуточный экран (под сгибом) с описанием его функций. В этом случае нажмите «Продолжить» (и вы больше никогда его не увидите). Вот как выглядит этот одноразовый экран:
Подготовка и подключение к Cloud Shell займет всего несколько минут.
Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Она предоставляет постоянный домашний каталог объёмом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Значительную часть работы в этой лабораторной работе, если не всю, можно выполнить, просто используя браузер или Chromebook.
После подключения к Cloud Shell вы увидите, что вы уже аутентифицированы и что проекту уже присвоен ваш идентификатор проекта.
- Выполните следующую команду в Cloud Shell, чтобы подтвердить, что вы прошли аутентификацию:
gcloud auth list
Вывод команды
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Вывод команды
[core] project = <PROJECT_ID>
Если это не так, вы можете установить его с помощью этой команды:
gcloud config set project <PROJECT_ID>
Вывод команды
Updated property [core/project].
После запуска Cloud Shell вы можете использовать командную строку для создания нового приложения Spring Boot с помощью Spring Initializr.
$ 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
Существует два способа развернуть серверное приложение Java: с помощью плагина Maven App Engine или плагина Gradle App Engine, либо развернув каталог пакетов war
. Для развёртывания приложения используется плагин Maven App Engine.
Добавить плагин Maven App Engine
Обновите pom.xml
, включив плагин Google Cloud, который упрощает процесс развёртывания. Для редактирования файла можно использовать Vim, nano или 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>
- Чтобы развернуть приложение в стандартной среде App Engine, необходимо создать новый файл-дескриптор
src/main/appengine/app.yaml
.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Отредактируйте файл
src/main/appengine/app.yaml
и добавьте следующее содержимое:
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
Добавьте новый контроллер, который возвращает "hello world!"
в 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!";
}
}
- Вы можете запустить приложение Spring Boot с помощью плагина Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- После запуска приложения нажмите «Веб-просмотр» .
на панели инструментов Cloud Shell выберите Предварительный просмотр на порту 8080 .
Вкладка в вашем браузере открывается и подключается к запущенному вами серверу.
- Сначала инициализируйте проект для запуска приложений App Engine. Также инициализируйте проект для запуска в центральном регионе США.
$ 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
- Затем разверните приложение в стандартной среде App Engine, выполнив
mvn appengine:deploy
.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- После развертывания приложения вы можете посетить его, открыв http://<project-id>.appspot.com в веб-браузере или используя следующую команду в Cloud Shell:
$ gcloud app browse ... [It may print out the URL for your app]
Вы научились писать свое первое веб-приложение App Engine!