Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Crea una aplicación en contenedores con paquetes de compilación

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.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

Descripción general

Los buildpacks son otro enfoque para crear imágenes de contenedor y proporcionan una alternativa para convertir el código fuente en una imagen de contenedor. Los buildpacks se distribuyen y ejecutan en imágenes llamadas compiladores. Cada compilador puede tener uno o más buildpacks. Un compilador convierte el código fuente en una imagen de contenedor. Los buildpacks hacen el trabajo real de compilar y empaquetar la imagen de contenedor que puedes implementar en Cloud Run o ejecutar con Docker de forma local.

Puedes crear tus propios buildpacks o usar los que ofrecen varios proveedores. Los buildpacks de Google Cloud permiten a los desarrolladores compilar e implementar aplicaciones alojadas en contenedores sin necesidad de instalar Docker de forma local ni crear un Dockerfile. Los buildpacks también están integrados en Cloud Run para habilitar un flujo de trabajo de implementación basado en código fuente.

Objetivos

En este lab, aprenderás a hacer lo siguiente:

  • Compilar una aplicación con pack, una herramienta de línea de comandos que se usa con compiladores para crear imágenes de contenedor a partir de código fuente
  • Usar el compilador de buildpacks de Google Cloud para crear una imagen de contenedor
  • Ejecutar y probar el contenedor de forma local con Docker
  • Crear y volver a implementar el contenedor en Cloud Run

Configuración

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

  1. Accede a Qwiklabs desde una ventana de incógnito.

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

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. 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.

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

  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 .

Tarea 1: Configura el entorno y proyecto

En esta tarea, configurarás variables de entorno y el entorno de Cloud Shell.

Configura el entorno de Cloud Shell

  1. Para configurar tu ID del proyecto y las variables de entorno de la región, ejecuta los siguientes comandos en Cloud Shell:

    PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|us-central1}}}
  2. Establece la región de procesamiento en Cloud Shell:

    gcloud config set compute/region $REGION

Habilita las APIs de Google

  • Para usar Cloud Run y la API de Google Translate más adelante en este lab, habilita las APIs pertinentes en tu proyecto:

    gcloud services enable artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com

Haz clic en Revisar mi progreso para verificar el objetivo. Habilitar las APIs de Google

Tarea 2: Compila y ejecuta una aplicación con Docker

En esta tarea, compilarás una aplicación de muestra con la herramienta de línea de comandos pack y el compilador de buildpacks de Google Cloud.

Desarrolla la aplicación

  1. Crea un directorio app y cambia a él:

    mkdir app && cd app
  2. Copia la aplicación de python de ejemplo para este lab desde Cloud Storage y extrae el contenido del archivo:

    gcloud storage cp gs://cloud-training/CBL513/sample-apps/sample-py-app.zip . && unzip sample-py-app
  3. Consulta los archivos de la aplicación de muestra y el código fuente:

    ls sample-py-app cat sample-py-app/main.py Como el buildpack de Python no genera un punto de entrada de contenedor predeterminado para la aplicación, usamos un Procfile para configurar el comando de inicio de la aplicación.

    La aplicación está escrita en Python y devuelve un mensaje de bienvenida de muestra en respuesta a una solicitud realizada a la aplicación.

Crea el contenedor

  1. Cambia al directorio de la aplicación de ejemplo:

    cd sample-py-app
  2. Actualiza el objeto binario pack en Cloud Shell:

    (curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.39.0/pack-v0.39.0-linux.tgz" | sudo tar -C /usr/local/bin/ --no-same-owner -xzv pack) pack es una herramienta de la interfaz de línea de comandos (CLI) que se usa para crear imágenes de contenedor a partir del código fuente de una aplicación con Cloud Native Buildpacks (CNB).
  3. Para crear el contenedor, ejecuta pack:

    pack build --builder=gcr.io/buildpacks/builder sample-py-app

    Un resultado parcial es similar al siguiente:

    ... ... [exporter] Setting default process type 'web' [exporter] Saving sample-py-app... [exporter] *** Images (9f9f9a48fd46): [exporter] sample-py-app [exporter] Adding cache layer 'google.python.pip:pip' [exporter] Adding cache layer 'google.python.pip:pipcache' Successfully built image sample-py-app Nota: Con pack, no necesitas escribir ni proporcionar un Dockerfile para crear la imagen de contenedor.
  4. Para ver las imágenes descargadas y creadas en tu host de Cloud Shell, ejecuta el siguiente comando:

    docker images REPOSITORY TAG IMAGE ID CREATED SIZE gcr.io/buildpacks/builder latest 514fb6f1bbfe 29 hours ago 804MB gcr.io/buildpacks/gcp/run v1 22db1b5e48e3 29 hours ago 177MB buildpacksio/lifecycle 0.16.0 67e021546a3f 43 years ago 30.5MB sample-py-app latest 9f9f9a48fd46 43 years ago 571MB
  5. Ejecuta el contenedor de forma local en Docker pasando la variable de entorno PORT a la aplicación y vinculando el puerto 8080 del host al puerto del contenedor:

    docker run -it -e PORT=8080 -p 8080:8080 -d sample-py-app El código de la aplicación escucha en el puerto que se proporciona en la variable de entorno, en este caso, el puerto 8080.
  6. Prueba la aplicación alojada en contenedores con el comando curl:

    curl http://localhost:8080/

    Deberías ver el siguiente mensaje como respuesta:

    Welcome to this sample app, built with Buildpacks.

Tarea 3: Compila y ejecuta una aplicación en Cloud Run

Por lo general, como paso siguiente del ciclo de vida de desarrollo e implementación, debes enviar la imagen de contenedor que creaste en la tarea anterior a Artifact Registry y, luego, implementarla en un entorno basado en contenedores, como Google Kubernetes Engine o Cloud Run.

En esta tarea, modificarás el código de la aplicación de muestra y, luego, compilarás la aplicación alojada en contenedores y la implementarás directamente desde la fuente con Cloud Run.

Modifica el código de la aplicación

Modificarás el código de la aplicación de ejemplo para que utilice la API de Google Translation, que traduce un fragmento de texto del inglés al español.

  1. Edita el archivo main.py con un editor de tu elección, por ejemplo, vi o nano. También puedes hacer clic en Abrir editor en el menú de Cloud Shell para editar el archivo.

  2. Reemplaza todo el contenido del archivo main.py por el siguiente código:

    from flask import Flask, request import google.auth from google.cloud import translate app = Flask(__name__) _, PROJECT_ID = google.auth.default() TRANSLATE = translate.TranslationServiceClient() PARENT = 'projects/{}'.format(PROJECT_ID) SOURCE, TARGET = ('en', 'English'), ('es', 'Spanish') @app.route('/', methods=['GET', 'POST']) def index(): # Restablece todas las variables text = translated = None if request.method == 'POST': text = request.get_json().get('text').strip() if text: data = { 'contents': [text], 'parent': PARENT, 'target_language_code': TARGET[0], } # Controla la llamada anterior para ofrecer retrocompatibilidad try: rsp = TRANSLATE.translate_text(request=data) except TypeError: rsp = TRANSLATE.translate_text(**data) translated = rsp.translations[0].translated_text # crea el contexto context = { 'trtext': translated } return context if __name__ == "__main__": # Solo para desarrollo: Ejecuta "python main.py" y abre http://localhost:8080 import os app.run(host="localhost", port=int(os.environ.get('PORT', 8080)), debug=True) El código de la aplicación usa la API de Google Translate para traducir un fragmento de texto que se pasa en una solicitud JSON del inglés al español.

Crea e implementa el contenedor

  1. Para crear e implementar el contenedor en Cloud Run, ejecuta el siguiente comando:

    gcloud run deploy sample-py-app --source . --region=${REGION} --allow-unauthenticated La opción allow-unauthenticated permite acceder al servicio sin necesidad de autenticarse.
  2. Cuando se te solicite, escribe Y para aceptar el repositorio predeterminado que se crea en Artifact Registry para almacenar la imagen de contenedor.

  3. Cuando se complete el comando, se creará un servicio de Cloud Run llamado sample-py-app.

    El resultado del comando es similar al siguiente:

    Building using Buildpacks and deploying container to Cloud Run service [sample-py-app] in project [qwiklabs-gcp-00-0d56d42aca1a] region [asia-east1] OK Building and deploying new service... Done. OK Creating Container Repository... OK Uploading sources... OK Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds/8bea2ded-4745-41f9-a82d-128e409daa20?project=34240880885]. OK Creating Revision... OK Routing traffic... OK Setting IAM Policy... Done. Service [sample-py-app] revision [sample-py-app-00001-nec] has been deployed and is serving 100 percent of traffic. Service URL: https://sample-py-app-ulvp7xw3bq-de.a.run.app

Prueba el servicio de Cloud Run

  1. Configura una variable de entorno para el servicio de Cloud Run que se creó en el paso anterior:

    SERVICE_URL=$(gcloud run services describe sample-py-app --region=${REGION} --format="value(status.url)"); echo $SERVICE_URL
  2. Para probar el servicio, ejecuta el comando curl:

    curl $SERVICE_URL -H 'Content-Type: application/json' -d '{"text" : "Welcome to this sample app, built with Google Cloud buildpacks."}'

    El servicio responde con el texto traducido:

    {"trtext":"Bienvenido a esta aplicaci\u00f3n de muestra, creada con paquetes de compilaci\u00f3n de Google Cloud."}

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar una aplicación en Cloud Run

¡Felicitaciones!

En este lab, compilaste una aplicación con el comando pack y el compilador de buildpacks de Google Cloud para crear una imagen de contenedor para una aplicación de Python de muestra. Primero, ejecutaste y probaste el contenedor de forma local con Docker antes de volver a crearlo e implementarlo en Cloud Run.

Próximos pasos y más información

Para obtener más información, consulta la documentación:

Obtén información sobre los buildpacks de Google Cloud para diferentes plataformas de contenedores, como GKE, Anthos y Container-Optimized OS:

Copyright 2026 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. 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.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. 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

Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar este 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.