arrow_back

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

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

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.
Obtén acceso a más de 700 labs y cursos

Descripción general

Los paquetes de compilación son otro enfoque para crear imágenes de contenedor y proporcionan una alternativa para convertir tu código fuente en una imagen de contenedor. Los paquetes de compilación se distribuyen y ejecutan en imágenes llamadas compiladores. Cada compilador puede tener uno o más paquetes de compilación. Un compilador convierte tu código fuente en una imagen de contenedor. Los paquetes de compilación 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 paquetes de compilación o usar los que ofrecen varios proveedores. Los paquetes de compilación de Google Cloud permiten a los desarrolladores crear y también implementar aplicaciones en contenedores sin necesidad de instalar Docker de forma local o crear un Dockerfile. Los paquetes de compilación 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 paquetes de compilación de Google Cloud para crear una imagen de contenedor.
  • Ejecutar y probar el contenedor de forma local con Docker.
  • Compilar 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 tu entorno y proyecto

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

Configura tu entorno de Cloud Shell

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

    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 Traductor más adelante en este lab, habilita las APIs pertinentes para tu proyecto:

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

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

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 paquetes de compilación de Google Cloud.

Desarrolla la aplicación

  1. Crea un directorio app y cámbialo como se indica a continuación:

    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 paquete de compilación 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.

Compile el contenedor

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

    cd sample-py-app
  2. Para compilar 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 compilar la imagen del contenedor.
  3. Para ver las imágenes descargadas y compiladas 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
  4. 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.
  5. Prueba la aplicación 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 en tu ciclo de vida de desarrollo e implementación, debes enviar la imagen de contenedor que compilaste en la tarea anterior a Artifact Registry y, luego, implementar la imagen 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

Modificas el código de la aplicación de ejemplo para usar la API de Google Traductor, 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(): # reset all 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], } # handle older call for backwards-compatibility try: rsp = TRANSLATE.translate_text(request=data) except TypeError: rsp = TRANSLATE.translate_text(**data) translated = rsp.translations[0].translated_text # create context context = { 'trtext': translated } return context if __name__ == "__main__": # Dev only: run "python main.py" and open 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 Traductor para traducir un fragmento de texto que se pasa en una solicitud JSON del inglés al español.

Compila e implementa el contenedor

  1. Para compilar 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 autenticación.
  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 paquetes de compilación 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 compilarlo y, luego, implementarlo en Cloud Run.

Próximos pasos/Más información

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

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

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.

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

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.