Guía de inicio rápido: Implementa un servicio de Java Spring Boot en Cloud Run
Aprende a crear una aplicación simple de Hello World, empaquetarla en una imagen de contenedor, subirla a Artifact Registry y, luego, implementarla en Cloud Run.
Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- A fin de configurar el proyecto predeterminado para tu servicio de Cloud Run, haz lo siguiente:
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.gcloud config set project PROJECT_ID
Si estás bajo una política de la organización de restricción de dominios que restringe las invocaciones no autenticadas para tu proyecto, deberás acceder al servicio implementado como se describe en Prueba servicios privados.
Habilita la API de Cloud Run Admin y la API de Cloud Build:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Después de habilitar la API de Cloud Run Admin, se crea de forma automática la cuenta de servicio predeterminada de Compute Engine.
- Para que Cloud Build pueda compilar tus fuentes, otorga el rol de cuenta de servicio de Cloud Build a la cuenta de servicio predeterminada de Compute Engine mediante la ejecución de lo siguiente:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Reemplaza
PROJECT_NUMBER
por el número de tu proyecto de Google Cloud yPROJECT_ID
por el ID de tu proyecto de Google Cloud. Para obtener instrucciones detalladas sobre cómo encontrar el ID y el número de tu proyecto, consulta Crea y administra proyectos.El otorgamiento del rol de cuenta de servicio de Cloud Build a la cuenta de servicio predeterminada de Compute Engine tarda unos minutos en propagarse.
Escriba la aplicación de ejemplo
Para escribir una aplicación en Java, sigue estos pasos:
Crea una aplicación de Spring Boot.
En la consola, usa los comandos de descompresión y de cURL para crear un proyecto web vacío nuevo:
curl https://start.spring.io/starter.zip \ -d type=maven-project \ -d bootVersion=3.2.1 \ -d dependencies=web \ -d javaVersion=17 \ -d name=helloworld \ -d artifactId=helloworld \ -d baseDir=helloworld \ -o helloworld.zip unzip helloworld.zip cd helloworld
Se creará un proyecto de Spring Boot.
A fin de usar este comando cURL en Microsoft Windows, necesitas una de las siguientes líneas de comandos o, de manera opcional, usar Spring Initializr (configuración precargada) para generar el proyecto:
Con objetivo de actualizar la clase
HelloworldApplication
ensrc/main/java/com/example/helloworld/HelloworldApplication.java
, agrega un@RestController
para controlar el mapeo de/
y, también, agrega un campo@Value
a fin de proporcionar la variable de entorno NAME:Configura el puerto del servidor que define la variable de entorno PORT en
src/main/resources/application.properties
:Con este código, se crea un servidor web básico que escucha en el puerto definido por la variable de entorno
PORT
.Crea un archivo
project.toml
en el directorio raíz para especificar una versión de Java:[[build.env]] name = "GOOGLE_RUNTIME_VERSION" value = "17"
La app está lista para implementarse.
Implementa en Cloud Run desde la fuente
Importante: En esta guía de inicio rápido, se supone que tienes roles de propietario o de editor en el proyecto que usas para la guía de inicio rápido. De lo contrario, consulta el rol del desarrollador de fuente de Cloud Run para conocer los permisos necesarios para implementar un recurso de Cloud Run desde la fuente.
La implementación desde la fuente compila automáticamente una imagen de contenedor a partir del código fuente y la implementa.
Para implementar desde la fuente, realiza estas acciones:
En el directorio del código fuente, implementa la carpeta actual con el siguiente comando:
gcloud run deploy --source .
Cuando se te solicite el nombre del servicio, presiona Intro para aceptar el nombre predeterminado, por ejemplo,
helloworld
.Si se te solicita que habilites las APIs adicionales en el proyecto, por ejemplo, la API de Artifact Registry, presiona
y
para responder.Cuando se te solicite la región, selecciona la región que prefieras, por ejemplo,
us-central1
.Si se te solicita que crees un repositorio en la región especificada, presiona
y
para responder.Si se te solicita permitir invocaciones no autenticadas, responde
y
. Es posible que no veas este mensaje si hay una política de la organización de restricción de dominio que lo impida. Para obtener más información, consulta la sección Antes de comenzar.
Luego, espera un momento a que finalice la implementación. Si la operación se completa de forma correcta, la línea de comandos mostrará la URL de servicio.
Abre la URL de servicio en un navegador web para visitar el servicio implementado.
Ubicaciones de Cloud Run
Cloud Run es regional, lo que significa que la infraestructura que ejecuta los servicios se ubica en una región específica, y Google la administra para que esté disponible de manera redundante en todas las zonas de esa región.
El cumplimiento de los requisitos de latencia, disponibilidad o durabilidad es el factor principal para seleccionar la región en la que se ejecutan los servicios de Cloud Run.
Por lo general, puedes seleccionar la región más cercana a los usuarios, pero debes considerar la ubicación de los otros productos de Google Cloud que usa el servicio de Cloud Run.
Si usas productos de Google Cloud en varias ubicaciones, la latencia y el costo del servicio pueden verse afectados.
Cloud Run está disponible en las siguientes regiones:
Sujetas a los Precios del nivel 1
asia-east1
(Taiwán)asia-northeast1
(Tokio)asia-northeast2
(Osaka)europe-north1
(Finlandia) Bajo nivel de CO2europe-southwest1
(Madrid) Bajo nivel de CO2europe-west1
(Bélgica) Bajo nivel de CO2europe-west4
(Países Bajos) Bajo nivel de CO2europe-west8
(Milán)europe-west9
(París) Bajo nivel de CO2me-west1
(Tel Aviv)us-central1
(Iowa) Bajo nivel de CO2us-east1
(Carolina del Sur)us-east4
(Virginia del Norte)us-east5
(Columbus)us-south1
(Dallas) Bajo nivel de CO2us-west1
(Oregón) Bajo nivel de CO2
Sujetas a los Precios del nivel 2
africa-south1
(Johannesburgo)asia-east2
(Hong Kong)asia-northeast3
(Seúl, Corea del Sur)asia-southeast1
(Singapur)asia-southeast2
(Yakarta)asia-south1
(Bombay, India)asia-south2
Delhi (India)australia-southeast1
(Sídney)australia-southeast2
(Melbourne)europe-central2
(Varsovia, Polonia)europe-west10
(Berlín) Bajo nivel de CO2europe-west12
(Turín)europe-west2
(Londres, Reino Unido) Bajo nivel de CO2europe-west3
(Fráncfort, Alemania) Bajo nivel de CO2europe-west6
(Zúrich, Suiza) Bajo nivel de CO2me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal) Bajo nivel de CO2northamerica-northeast2
(Toronto) Bajo nivel de CO2southamerica-east1
(São Paulo, Brasil) Bajo nivel de CO2southamerica-west1
(Santiago, Chile) Bajo nivel de CO2us-west2
(Los Ángeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Si ya creaste un servicio de Cloud Run, puedes ver la región en el panel de Cloud Run en la consola de Google Cloud.
¡Felicitaciones! Acaba de implementar una imagen de contenedor del código fuente en Cloud Run. Cloud Run reduce la escala de la imagen de contenedor de forma automática y horizontal para controlar las solicitudes que se reciben y, luego, escala horizontalmente cuando disminuye la demanda. Solo debes pagar por la CPU, la memoria y las herramientas de redes que se utilicen durante la administración de la solicitud.
Limpia
Quita el proyecto de prueba
Si bien Cloud Run no cobra cuando el servicio no se usa, es posible que se te cobre por el almacenamiento de la imagen de contenedor en Artifact Registry. Puedes borrar la imagen de contenedor o borrar el proyecto de Google Cloud para evitar que se apliquen cargos. Si borras tu proyecto de Google Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
¿Qué sigue?
Para obtener más información sobre cómo compilar un contenedor a partir de código fuente y enviarlo a un repositorio, consulta los siguientes vínculos: