Las apps de App Engine son fáciles de crear, mantener y escalar a medida que cambian tus necesidades de almacenamiento de datos y tráfico. Con App Engine, no tendrás que mantener servidores. Solo debes subir tu app y estará lista para usar.
Las apps de App Engine se escalan automáticamente según el tráfico entrante. El balanceo de cargas, los microservicios, la autorización, las bases de datos SQL y NoSQL, el almacenamiento en caché de la memoria, la división del tráfico, el registro, la búsqueda, el control de versiones, los lanzamientos y las reversiones, y el análisis de seguridad son compatibles de forma nativa y sumamente personalizables.
El entorno estándar de App Engine y el entorno flexible de App Engine admiten una gran cantidad de lenguajes de programación, incluidos Java, Python, PHP, Node.js y Go. Ambos entornos brindan a los desarrolladores la máxima flexibilidad en cuanto al comportamiento de sus apps. Cada entorno tiene ciertas fortalezas. Para obtener más información, consulta Elige un entorno de App Engine.
Aprenderás a implementar una app de Spring Boot en el entorno estándar de App Engine. El entorno estándar reduce su escala a cero instancias cuando nadie lo usa y la aumenta automáticamente.
Requisitos previos
- Tener conocimientos del lenguaje de programación y las herramientas de Java
- Conocimiento de editores de texto estándares de Linux, como Vim, Emacs y nano
Actividades
- Cómo crear una app de Java con Spring Boot en App Engine
Requisitos
- Un proyecto de Google Cloud
- Un navegador, como Google Chrome
Configuración del entorno de autoaprendizaje
- Accede a Cloud Console y crea un proyecto nuevo o reutiliza uno existente. (Si todavía no tienes una cuenta de Gmail o de G Suite, debes crear una).
Recuerde el ID de proyecto, un nombre único en todos los proyectos de Google Cloud (el nombre anterior ya se encuentra en uso y no lo podrá usar). Se mencionará más adelante en este codelab como PROJECT_ID
.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar los recursos de Google Cloud.
Ejecutar este codelab debería costar solo unos pocos dólares, pero su costo podría aumentar si decides usar más recursos o si los dejas en ejecución.
Los usuarios nuevos de Google Cloud son aptos para obtener una prueba gratuita de USD 300.
Cloud Shell
Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud.
Activar Cloud Shell
- En la consola de Cloud, haz clic en Activar Cloud Shell
.
Si nunca ha iniciado Cloud Shell, aparecerá una pantalla intermedia (debajo de la mitad inferior de la página) que describe qué es. Si ese es el caso, haz clic en Continuar (y no volverás a verlo). Así es como se ve la pantalla única:
El aprovisionamiento y la conexión a Cloud Shell solo tomará unos minutos.
Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Gran parte de tu trabajo en este codelab, si no todo, se puede hacer simplemente con un navegador o tu Chromebook.
Una vez conectado a Cloud Shell, debería ver que ya se autenticó y que el proyecto ya se configuró con tu ID del proyecto.
- En Cloud Shell, ejecuta el siguiente comando para confirmar que está autenticado:
gcloud auth list
Resultado del comando
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Resultado del comando
[core] project = <PROJECT_ID>
De lo contrario, puedes configurarlo con el siguiente comando:
gcloud config set project <PROJECT_ID>
Resultado del comando
Updated property [core/project].
Después de que se inicie Cloud Shell, puedes usar la línea de comandos para generar una nueva app de Spring Boot con 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
Existen dos formas de implementar una app de servidor de Java: usando el complemento de Maven App Engine o el complemento de Gradle App Engine, o bien implementando el directorio del paquete war
. Usarás el complemento de Maven para App Engine para implementar la app.
Agrega el complemento de Maven App Engine
Actualiza pom.xml
para incluir un complemento de Google Cloud que simplifique el proceso de implementación. Puedes usar Vim, nano o Emacs para editar el archivo.
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>
- Para implementar la app en el entorno estándar de App Engine, debes crear un nuevo archivo descriptor
src/main/appengine/app.yaml
.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Edita el archivo
src/main/appengine/app.yaml
y agrega el siguiente contenido:
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
Agrega un nuevo controlador que devuelva "hello world!"
en 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!";
}
}
- Puedes iniciar la app de Spring Boot con el complemento de Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- Después de que se inicie la app, haz clic en Vista previa en la Web
en la barra de herramientas de Cloud Shell y selecciona Vista previa en el puerto 8080.
En tu navegador, se abrirá una pestaña y se conectará al servidor que iniciaste.
- Primero, inicializa el proyecto para poder ejecutar apps de App Engine. Además, inicializa el proyecto para que se ejecute en la región central de EE.UU.
$ 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
- Luego, ejecuta
mvn appengine:deploy
para implementar tu app en el entorno estándar de App Engine.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Después de implementar la app, puedes abrir http://<project-id>.appspot.com en tu navegador web o usar el siguiente comando en Cloud Shell para visitarla:
$ gcloud app browse ... [It may print out the URL for your app]
Aprendiste a escribir tu primera app web de App Engine.