arrow_back

Hola, Cloud Run

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Hola, Cloud Run

Lab 1 hora universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Descripción general

Logotipo de Cloud Run

Cloud Run es una plataforma de procesamiento administrada que te permite ejecutar contenedores sin estado que se pueden invocar a través de solicitudes HTTP. Cloud Run es una plataforma sin servidores que quita la complejidad de la administración de la infraestructura para que puedas enfocarte en lo que más importa: compilar aplicaciones extraordinarias.

Cloud Run se basa en Knative, por lo que puedes ejecutar tus contenedores completamente administrados con Cloud Run o en el clúster de Google Kubernetes Engine con Cloud Run en GKE.

El objetivo de este lab es que crees una imagen de aplicación sencilla alojada en contenedores y la implementes en Cloud Run.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Habilitar la API de Cloud Run
  • Crear una aplicación sencilla de Node.js que se pueda implementar como un contenedor sin servidores ni estado
  • Alojar tu aplicación en contenedores y subirla a Artifact Registry
  • Implementar una aplicación alojada en contenedores en Cloud Run
  • Borrar las imágenes innecesarias para evitar generar cobros de almacenamiento adicionales

Configuración y requisitos

En cada lab, recibirás un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegació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.

  1. En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell destacado

  2. 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:

ID del proyecto destacado en la terminal de Cloud Shell

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:
gcloud auth list

Resultado:

Credentialed accounts: - @.com (active)

Resultado de ejemplo:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puedes solicitar el ID del proyecto con este comando:
gcloud config list project

Resultado:

[core] project =

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: La documentación completa de gcloud está disponible en la guía de descripción general de gcloud CLI .

Referencia

Comandos básicos de Linux

A continuación, encontrará una lista de referencia con algunos comandos muy básicos de Linux que se pueden incluir en las instrucciones o los bloques de código de este lab.

Comando --> Acción . Comando --> Acción
mkdir (crear directorio) crea una carpeta nueva . cd (cambiar directorio) cambia la ubicación a otra carpeta
ls (lista ) enumera los archivos y las carpetas en la carpeta . cat (concatenar) lee los contenidos de un archivo sin usar un editor
apt-get update actualiza la biblioteca del administrador de paquetes . ping indicador para probar la accesibilidad de un host
mv (mover ) mueve un archivo . cp (copiar) crea la copia de un archivo
pwd (presentar directorio de trabajo ) muestra su ubicación actual . sudo (superusuario hace) otorga privilegios de administrador superiores

Tarea 1. Habilita la API de Cloud Run y configura tu entorno de shell

  1. En Cloud Shell, habilita la API de Cloud Run:
gcloud services enable run.googleapis.com
  1. Si se te solicita autorizar el uso de tus credenciales, hazlo. Luego, deberías ver un mensaje que indica que la operación se realizó correctamente, como este:
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully. Nota: Para habilitar la API, también puedes consultar la sección APIs y servicios de la consola.
  1. Establece la región de procesamiento:
gcloud config set compute/region {{{project_0.default_region | "REGION"}}}
  1. Crea una variable de entorno LOCATION:
LOCATION="{{{project_0.default_region | Region}}}"

Tarea 2. Escribe la aplicación de ejemplo

En esta tarea, compilarás una aplicación sencilla de Node.js basada en Express que responda ante las solicitudes HTTP.

  1. En Cloud Shell, crea un nuevo directorio llamado helloworld y, luego, ve a él en la vista:
mkdir helloworld && cd helloworld
  1. A continuación, crearás y editarás archivos. Para editar archivos, haz clic en el botón Abrir editor en Cloud Shell para utilizar nano o el editor de código de Cloud Shell.

  2. Crea un archivo package.json y agrégale el siguiente contenido:

nano package.json { "name": "helloworld", "description": "Simple hello world sample in Node", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Google LLC", "license": "Apache-2.0", "dependencies": { "express": "^4.17.1" } }

Lo más importante es que el archivo anterior contiene una secuencia de comandos de inicio y una dependencia del framework de aplicaciones web Express.

  1. Presiona CTRL + X, luego, Y y, después, Intro para guardar el archivo package.json.

  2. A continuación, en el mismo directorio, crea un archivo index.js y cópiale las siguientes líneas:

nano index.js const express = require('express'); const app = express(); const port = process.env.PORT || 8080; app.get('/', (req, res) => { const name = process.env.NAME || 'World'; res.send(`Hello ${name}!`); }); app.listen(port, () => { console.log(`helloworld: listening on port ${port}`); });

Con este código, se crea un servidor web básico que escucha en el puerto definido por la variable de entorno PORT. Ahora, la app está terminada y lista para alojarla en contenedores y subirla a Artifact Registry.

  1. Presiona CTRL + X, luego, Y y, después, Intro para guardar el archivo index.js
Nota: Puedes usar muchos otros lenguajes para comenzar a usar Cloud Run. Encontrarás instrucciones para las secuencias de comandos de shell, Go, Python, Java, PHP y Ruby, entre otras, en la guía de inicio rápido.

Tarea 3. Aloja tu app en contenedores y súbela a Artifact Registry

  1. Para alojar la app de ejemplo en contenedores, crea un nuevo archivo denominado Dockerfile en el mismo directorio que los archivos fuente y agrega el siguiente contenido:
nano Dockerfile # Use the official lightweight Node.js 12 image. # https://hub.docker.com/_/node FROM node:12-slim # Create and change to the app directory. WORKDIR /usr/src/app # Copy application dependency manifests to the container image. # A wildcard is used to ensure copying both package.json AND package-lock.json (when available). # Copying this first prevents re-running npm install on every code change. COPY package*.json ./ # Install production dependencies. # If you add a package-lock.json, speed your build by switching to 'npm ci'. # RUN npm ci --only=production RUN npm install --only=production # Copy local code to the container image. COPY . ./ # Run the web service on container startup. CMD [ "npm", "start" ]
  1. Presiona CTRL+X, luego, Y y, después, Intro para guardar el archivo Dockerfile.

  2. Usa Cloud Build para compilar la imagen de contenedor. Para ello, ejecuta el siguiente comando desde el directorio que contiene el Dockerfile (fíjate en la variable de entorno $GOOGLE_CLOUD_PROJECT del comando, que contiene el ID del proyecto del lab):

gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld

Cloud Build es un servicio que ejecuta tus compilaciones en Google Cloud. Ejecuta una serie de pasos de compilación, cada uno en un contenedor de Docker, para producir tu contenedor de aplicaciones (o demás artefactos) y enviarlo a Artifact Registry, todo en un solo comando.

Una vez enviado al registro, verás un mensaje de éxito que contiene el nombre de la imagen (gcr.io/[ID-DEL-PROYECTO]/helloworld). La imagen se almacena en Artifact Registry y puede volver a usarse si así se desea.

  1. Obtén una lista de todas las imágenes de contenedores asociadas a tu proyecto actual con el siguiente comando:
gcloud container images list
  1. Registra gcloud como auxiliar de credenciales para todos los registros de Docker compatibles con Google:
gcloud auth configure-docker Nota: Es posible que se muestre el mensaje Do you want to continue? (y/N)? Si es así, ingresa Y para aceptar.
  1. Para ejecutar y probar la aplicación de manera local desde Cloud Shell, iníciala con el siguiente comando estándar de docker:
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. En la ventana de Cloud Shell, haz clic en Vista previa en la Web y selecciona Vista previa en el puerto 8080.

Debería abrirse una ventana del navegador con el mensaje “Hello World!”. También puedes usar curl localhost:8080.

Tarea 4. Implementa en Cloud Run

  1. Para implementar tu aplicación alojada en contenedores en Cloud Run, usa el siguiente comando y agrega el ID de tu proyecto:
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION

La marca allow-unauthenticated del comando anterior permite acceder de forma pública a tu servicio.

  1. Cuando se te solicite, presiona Intro para confirmar el service name.
Nota: Es posible que se muestre el mensaje ¿Do you want enable these APIs to continue (this will take a few minutes)? (y/N)? Si es así, ingresa Y para habilitar las APIs necesarias.

Espera un momento a que finalice la implementación.

Si la operación es exitosa, la línea de comandos mostrará la URL de servicio:

Service [helloworld] revision [helloworld-00001-xit] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-h6cp412q3a-uc.a.run.app

Ahora puedes abrir la URL de servicio en cualquier ventana del navegador para visitar el contenedor implementado.

¡Felicitaciones! Acabas de implementar una aplicación empaquetada en una imagen de contenedor en Cloud Run. Cloud Run escala la imagen del contenedor automáticamente y de forma horizontal para controlar las solicitudes que se reciben y, luego, reduce la escala cuando disminuye la demanda. En tu propio entorno, solo debes pagar por la CPU, la memoria y las herramientas de redes que hayas consumido durante la administración de solicitudes.

En este lab, usaste la línea de comandos de gcloud. Cloud Run también está disponible a través de la consola de Cloud.

  • En el menú de navegación, en la sección Sin servidores, haz clic en Cloud Run y deberías ver el servicio helloworld:

Pestaña de Cloud Run en la que se muestra el servicio helloworld

Tarea 5. Realiza una limpieza

Si bien Cloud Run no cobra cuando el servicio no se usa, es posible que se te cobre por el almacenamiento de la imagen del contenedor compilada.

  1. Para evitar esto, puedes borrar el proyecto de Google Cloud, lo que detendrá la facturación de todos los recursos usados en ese proyecto, o puedes borrar la imagen de helloworld con el siguiente comando:
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Cuando se te solicite continuar, escribe Y y presiona Intro.

  2. Para borrar el servicio de Cloud Run, usa el siguiente comando:

gcloud run services delete helloworld --region={{{project_0.default_region | "REGION"}}}
  1. Cuando se te solicite continuar, escribe Y y presiona Intro.

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

¡Felicitaciones!

Completaste este lab.

Próximos pasos/Más información

Si quieres obtener más información para compilar un contenedor HTTP sin estado adecuado para Cloud Run a partir de código fuente y enviarlo a Artifact Registry, consulta estas páginas:

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.

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