О практической работе
1. Прежде чем вы начнете
Приложения App Engine легко создавать, легко поддерживать и легко масштабировать по мере изменения потребностей в трафике и хранении данных. App Engine не требует обслуживания серверов. Вы просто загружаете свое приложение, и оно готово к работе.
Приложения App Engine автоматически масштабируются в зависимости от входящего трафика. Балансировка нагрузки, микросервисы, авторизация, базы данных SQL и NoSQL, кэширование памяти, разделение трафика, ведение журнала, поиск, управление версиями, развертывание и откат, а также сканирование безопасности поддерживаются изначально и имеют широкие возможности настройки.
Стандартная среда App Engine и гибкая среда App Engine поддерживают множество языков программирования, включая Java, Python, PHP, NodeJS и Go. Две среды дают разработчикам максимальную гибкость в отношении того, как ведет себя их приложение. Каждая среда имеет определенные сильные стороны. Дополнительные сведения см. в разделе Выбор среды App Engine .
Вы научитесь развертывать приложение Spring Boot в стандартной среде App Engine. Стандартная среда масштабируется до нуля, когда ее никто не использует, и автоматически масштабируется!
Предпосылки
- Знание языка программирования Java и инструментов
- Знание стандартных текстовых редакторов Linux, таких как Vim, Emacs и nano.
Что ты будешь делать
- Как создать Java-приложение Spring Boot в App Engine
Что вам понадобится
- Облачный проект Google
- Браузер, например Google Chrome
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Cloud Console и создайте новый проект или повторно используйте существующий. (Если у вас еще нет учетной записи Gmail или G Suite, ее необходимо создать .)
Запомните идентификатор проекта, уникальное имя для всех проектов Google Cloud (имя выше уже занято и не будет работать для вас, извините!). Позже в этой кодовой лаборатории он будет упоминаться как PROJECT_ID
.
- Затем вам нужно включить выставление счетов в Cloud Console, чтобы использовать ресурсы Google Cloud.
Выполнение этой лаборатории кода не должно стоить вам больше нескольких долларов, но может быть больше, если вы решите использовать больше ресурсов или оставите их включенными.
Новые пользователи Google Cloud имеют право на бесплатную пробную версию за 300 долларов .
Облачная оболочка
Вы будете использовать Cloud Shell — среду командной строки, работающую в Google 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].
3. Создайте новое веб-приложение Spring Boot
После запуска 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
4. Обновить Maven pom.xml
Есть два способа развернуть серверное приложение Java — либо с помощью подключаемого модуля Maven App Engine или подключаемого модуля Gradle App Engine, либо путем развертывания каталога war
пакета. Вы будете использовать подключаемый модуль Maven App Engine для развертывания приложения.
Добавить подключаемый модуль Maven App Engine
Обновите pom.xml
, включив в него подключаемый модуль Google Cloud, упрощающий процесс развертывания. Вы можете использовать Vim, nano или Emacs для редактирования файла.
пом.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
- Чтобы развернуть приложение в стандартной среде 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
6. Добавить контроллер
Добавьте новый контроллер, который возвращает "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!";
}
}
7. Локально запустить приложение
- Вы можете запустить приложение Spring Boot с помощью плагина Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- После запуска приложения нажмите « Веб-просмотр ».
на панели инструментов Cloud Shell и выберите Preview на порту 8080 .
Откроется вкладка в вашем браузере и подключится к серверу, который вы запустили.
8. Разверните приложение в App Engine
- Сначала инициализируйте проект, чтобы иметь возможность запускать приложения 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]