Cloud Run es una plataforma de procesamiento completamente administrada que te permite ejecutar contenedores sin estado que se pueden invocar con solicitudes HTTP. Puedes implementar código escrito en cualquier lenguaje de programación en Cloud Run si puedes crear una imagen de contenedor a partir de él. Puedes usar la opción de implementación basada en la fuente que compila el contenedor por ti cuando desarrollas tu aplicación en Go, Node.js, Python, Java, .NET Core o Ruby.
Cloud Run no tiene servidores y ejecuta tus contenedores en la infraestructura escalable de Google. Se basa en Knative y te permite elegir entre ejecutar tus contenedores completamente administrados con Cloud Run o en tu clúster de Google Kubernetes Engine con Cloud Run en GKE.
Cloud Run funciona bien con otros servicios de Google Cloud, por lo que puedes crear aplicaciones con todas las funciones sin dedicar demasiado tiempo a operar, configurar y escalar tu servicio de Cloud Run.
Objetivos
En este lab, aprenderás a hacer lo siguiente:
Usar Cloud Build para crear una imagen de contenedor de Docker para tu aplicación
Implementar la imagen de contenedor en Cloud Run
Ejecutar y probar la aplicación alojada en contenedores
Configuración
En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
Accede a Qwiklabs desde una ventana de incógnito.
Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.
Cuando esté listo, haga clic en Comenzar lab.
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
Haga clic en Abrir Google Console.
Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
Si usa otras credenciales, se generarán errores o incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación.
Activa Google Cloud Shell
Google Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud.
Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.
Haz clic en Continuar.
El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.
Puedes solicitar el nombre de la cuenta activa con este comando:
En esta tarea, configurarás las variables de entorno para tu entorno de Cloud Shell y habilitarás las APIs de Google pertinentes para usarlas en este lab.
Accede a la consola de Google Cloud con tus credenciales de lab y abre la ventana de terminal de Cloud Shell.
Para configurar el ID de tu proyecto y las variables de entorno de la región, en Cloud Shell, ejecuta los siguientes comandos:
Para ver el código fuente de la aplicación, consulta el contenido del archivo server.js en el directorio de nivel superior:
cat server.js
Este es el punto de entrada principal de la aplicación. Esta aplicación de ejemplo es un servicio básico de venta minorista que proporciona una API que devuelve datos de productos cuando se hacen solicitudes a la aplicación a través de HTTP.
Para instalar los módulos de dependencia de la app de forma local, ejecuta el siguiente comando:
npm install
Prueba la aplicación
Para ejecutar la app de manera local, utiliza el siguiente comando:
npm start
Deberías ver el siguiente resultado:
> sample-node-app@1.0.0 start
> node server.js
Sample-node-app listening on port 8080!
Para abrir una segunda ventana de terminal de Cloud Shell, en la barra de navegación de Cloud Shell, haz clic en ().
Prueba la API de ejemplo haciendo algunas solicitudes HTTP a la aplicación:
curl http://localhost:8080/service/products | jq
Usamos la herramienta de línea de comandos jq para analizar y dar formato a la respuesta JSON de la aplicación.
La aplicación debería responder con una lista de productos:
[
{
"id": "1YMWWN1N4O",
"name": "Home Barista Kit",
"description": "Always wanted to brew coffee with Chemex and Aeropress at home?",
"picture": "static/img/products/barista-kit.jpg",
"cost": 124,
"categories": [
"cookware"
]
},
{
"id": "L9ECAV7KIM",
"name": "Terrarium",
"description": "This terrarium will look great in your white painted living room.",
"picture": "static/img/products/terrarium.jpg",
"cost": 36.45,
"categories": [
"gardening"
]
},
{
"id": "2ZYFJ3GM2N",
"name": "Film Camera",
"description": "This camera looks like it's a film camera, but it's actually digital.",
"picture": "static/img/products/film-camera.jpg",
"cost": 2245,
"categories": [
"photography",
"vintage"
]
},
{
"id": "LS4PSXUNUM",
"name": "Metal Camping Mug",
"description": "You probably don't go camping that often but this is better than plastic cups.",
"picture": "static/img/products/camp-mug.jpg",
"cost": 24.33,
"categories": [
"cookware"
]
},
{
"id": "9SIQT8TOJO",
"name": "City Bike",
"description": "This single-gear bike probably cannot climb the hills of San Francisco.",
"picture": "static/img/products/city-bike.jpg",
"cost": 789.5,
"categories": [
"cycling"
]
},
{
"id": "6E92ZMYYFZ",
"name": "Air Plant",
"description": "Have you ever wondered whether air plants need water? Buy one and figure out.",
"picture": "static/img/products/air-plant.jpg",
"cost": 12.3,
"categories": [
"gardening"
]
}
]
Haz una segunda solicitud a la API para recuperar un producto específico por ID:
La aplicación debería responder con detalles sobre el producto específico:
{
"id": "1YMWWN1N4O",
"name": "Home Barista Kit",
"description": "Always wanted to brew coffee with Chemex and Aeropress at home?",
"picture": "static/img/products/barista-kit.jpg",
"cost": 124,
"categories": [
"cookware"
]
}
Para salir de la aplicación, en la primera ventana de terminal de Cloud Shell, escribe Ctrl + C.
Tarea 3: Aloja la aplicación en contenedores con Cloud Build
Cloud Build es un servicio que ejecuta tus compilaciones en Google Cloud. Con Cloud Build, puedes crear, probar e implementar tu aplicación de forma continua con una canalización de integración y entrega continuas (CI/CD).
Para proporcionar instrucciones a Cloud Build, crea un archivo de configuración de compilación que contenga un conjunto de tareas. Estas instrucciones pueden configurar compilaciones para que recuperen dependencias, ejecuten pruebas de unidades y de integración, realicen análisis estáticos y creen artefactos con herramientas de compilación como Docker, Gradle, Maven y otras.
En esta tarea, usarás Cloud Build para crear un contenedor de Docker para tu aplicación y enviar la imagen de contenedor resultante a un repositorio en Artifact Registry.
Crea el repositorio
En el campo Buscar de la barra de título de la consola de Google Cloud, escribe Artifact Registry, haz clic en Buscar y, luego, en Artifact Registry.
Haz clic en el ícono (Fijar) junto a Artifact Registry.
Haz clic en Crear repositorio.
En la página Crear repositorio, proporciona la siguiente información y deja el resto de la configuración con los valores predeterminados:
Nombre
my-repo
Formato
Docker
Tipo de ubicación
Región
Región
Haz clic en Crear y espera a que se cree el repositorio.
Autentica a Docker para usar el repositorio
Antes de poder enviar imágenes al repositorio, debes configurar Docker para que autentique solicitudes al repositorio en Artifact Registry.
Para configurar la autenticación en los repositorios de Docker de la región , ejecuta el siguiente comando en Cloud Shell:
Para proporcionar instrucciones a Cloud Build, crea un archivo de configuración de compilación que contenga un conjunto de tareas. Estas instrucciones pueden configurar compilaciones para que recuperen dependencias, ejecuten pruebas de unidades y de integración, realicen análisis estáticos y creen artefactos con compiladores como Docker, Gradle, Maven y otros.
Establece una variable de entorno para el nombre del repositorio:
cat cloudbuild.yaml
El paso de compilación compila una imagen de contenedor con el compilador Docker a partir del código fuente y el Dockerfile, que se encuentran en el directorio actual. Luego, la imagen compilada se envía al repositorio en Artifact Registry.
Crea el contenedor
Para crear el contenedor con Cloud Build, ejecuta el siguiente comando:
Cloud Build primero sube el código fuente de tu aplicación y otros archivos del directorio especificado a Cloud Storage. Luego, compila la imagen de contenedor que contiene tu aplicación a partir de las instrucciones especificadas en la configuración de compilación y el Dockerfile, etiqueta la imagen con el nombre de imagen especificado y la envía al repositorio en Artifact Registry.
Consulta el historial de compilaciones
En el campo Buscar de la barra de título de la consola de Google Cloud, escribe Cloud Build, haz clic en Buscar y, luego, en Cloud Build.
En Región, selecciona .
Haz clic en el ID de la compilación que se encuentra al principio de la lista.
Se mostrarán los detalles de la compilación, incluido su registro.
Consulta la imagen de contenedor en Artifact Registry
Después de que se complete el comando de compilación, en el menú de navegación () de la consola de Google Cloud, haz clic en Artifact Registry > Repositorios.
Haz clic en el repositorio my-repo para mostrar la imagen de contenedor sample-node-app-image.
Para verificar este objetivo, haz clic en Revisar mi progreso.
Crear una imagen de contenedor con Cloud Build.
Tarea 4: Implementar el contenedor en Cloud Run
Con la imagen de contenedor creada, ahora puedes implementarla en Cloud Run. Hay dos enfoques para las implementaciones en Cloud Run:
Cloud Run administrado: Un modelo de servicio completamente administrado en el que Cloud Run administra todo el ciclo de vida del contenedor. En este lab, usarás este enfoque.
Cloud Run en Anthos: Cloud Run con una capa adicional de control. Esto te permite traer tus propios clústeres y Pods de GKE.
En esta tarea, implementarás tu imagen de contenedor en el servicio de Cloud Run completamente administrado en Google Cloud.
Para implementar la imagen de contenedor, ejecuta el siguiente comando en Cloud Shell:
gcloud run deploy sample-node-app --image ${REPO}/sample-node-app-image --region $REGION --allow-unauthenticated
La opción allow-unauthenticated permite acceder al servicio sin necesidad de autenticación.
Una vez que se complete el comando, en el menú de navegación () de la consola de Google Cloud, haz clic en Cloud Run.
Para mostrar los detalles del servicio de Cloud Run, haz clic en el nombre del servicio sample-node-app.
Para verificar este objetivo, haz clic en Revisar mi progreso.
Implementar la imagen de contenedor en Cloud Run.
Tarea 5: Prueba la aplicación en Cloud Run
Para verificar que el servicio se esté ejecutando y esté disponible para aceptar solicitudes, ejecuta el siguiente comando en Cloud Shell:
gcloud run services list
El resultado del comando es similar al siguiente:
✔
SERVICE: sample-node-app
REGION: asia-east1
URL: https://sample-node-app-dduno3adrq-uc.a.run.app
LAST DEPLOYED BY: student-04-329a97f025fd@qwiklabs.net
LAST DEPLOYED AT: 2023-02-28T22:21:04.803928Z
En el resultado del comando, copia el valor de la URL, pégalo en el comando curl y agrega service/products al final de la URL, como se muestra a continuación. Redirige el resultado al comando jq con una barra lateral y presiona Intro:
Copyright 2020 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto
Este contenido no está disponible en este momento
Te enviaremos una notificación por correo electrónico cuando esté disponible
¡Genial!
Nos comunicaremos contigo por correo electrónico si está disponible
Un lab a la vez
Confirma para finalizar todos los labs existentes y comenzar este
Usa la navegación privada para ejecutar el lab
Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así
evitarás cualquier conflicto entre tu cuenta personal y la cuenta
de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
En este lab, crearás e implementarás una aplicación alojada en contenedores en Cloud Run.
Duración:
0 min de configuración
·
Acceso por 60 min
·
60 min para completar