1. Descripción general
Implementar una aplicación web por primera vez puede ser intimidante. Incluso después de la primera implementación, si el proceso es demasiado laborioso, es posible que evites implementar versiones nuevas de tu aplicación. Con la implementación continua, puedes implementar automáticamente los cambios de tu aplicación con facilidad.
En este lab, escribirás una aplicación web y configurarás Cloud Run para que implemente automáticamente tu aplicación cuando se realice un cambio en el código fuente de la aplicación. Luego, modifica tu aplicación y vuelve a implementarla.
Qué aprenderás
- Escribe una aplicación web con el editor de Cloud Shell
- Almacena el código de tu aplicación en GitHub
- Implementa tu aplicación automáticamente en Cloud Run
- Agrega IA generativa a tu aplicación con Vertex AI
2. Requisitos previos
- Si aún no tienes una Cuenta de Google, debes crear una.
- Usar una cuenta personal en lugar de una cuenta laboral o educativa Es posible que las cuentas laborales y educativas tengan restricciones que te impidan habilitar las APIs necesarias para este lab.
- Si aún no tienes una cuenta de GitHub, debes crear una.
- Usa una cuenta de GitHub existente si la tienes. Es más probable que GitHub bloquee una cuenta nueva como spam.
- Configura la autenticación de dos factores en tu cuenta de GitHub para reducir las probabilidades de que se marque como spam.
3. Configura el proyecto
- Accede a la consola de Google Cloud.
- Habilita la facturación en la consola de Cloud.
- Completar este lab debería costar menos de USD 1 en recursos de Cloud.
- Puedes seguir los pasos al final de este lab para borrar recursos y evitar cargos adicionales.
- Los usuarios nuevos pueden acceder a la prueba gratuita de USD 300.
- ¿Asistirás a un evento de IA generativa para desarrolladores? Es posible que haya disponible un crédito de USD 1.
- Crea un proyecto nuevo o elige reutilizar uno existente.
- Confirma que la facturación esté habilitada en Mis proyectos en la Facturación de Cloud.
- Si tu proyecto nuevo dice
Billing is disableden la columnaBilling account, haz lo siguiente:- Haz clic en los tres puntos de la columna
Actions. - Haz clic en Cambiar la facturación.
- Selecciona la cuenta de facturación que deseas usar
- Haz clic en los tres puntos de la columna
- Si asistes a un evento de IA generativa para desarrolladores, es probable que la cuenta se llame Cuenta de facturación de prueba de Google Cloud Platform.
- Si tu proyecto nuevo dice
4. Abre el editor de Cloud Shell
- Navega al Editor de Cloud Shell.
- Si la terminal no aparece en la parte inferior de la pantalla, ábrela:
- Haz clic en el menú de hamburguesa
. - Haz clic en Terminal.
- Haz clic en Terminal nueva.

- Haz clic en el menú de hamburguesa
- En la terminal, configura tu proyecto con este comando:
- Formato:
gcloud config set project [PROJECT_ID] - Ejemplo:
gcloud config set project lab-project-id-example - Si no recuerdas el ID de tu proyecto, haz lo siguiente:
- Puedes enumerar todos los IDs de tus proyectos con el siguiente comando:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- Puedes enumerar todos los IDs de tus proyectos con el siguiente comando:
- Formato:
- Si se te solicita autorización, haz clic en Autorizar para continuar.

- Deberías ver el siguiente mensaje:
Si ves unUpdated property [core/project].
WARNINGy se te preguntaDo you want to continue (Y/N)?, es probable que hayas ingresado el ID del proyecto de forma incorrecta. PresionaN, presionaEntery vuelve a intentar ejecutar el comandogcloud config set project.
5. Habilita las APIs
En la terminal, habilita las APIs:
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com
Este comando puede tardar unos minutos en completarse, pero, finalmente, debería producir un mensaje de éxito similar a este:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
6. Configurar Git
- Configura tu correo electrónico de usuario global de Git:
git config --global user.email "you@example.com" - Configura tu nombre de usuario global de Git:
git config --global user.name "Your Name" - Configura tu rama predeterminada global de Git en
main:git config --global init.defaultBranch main
7. Escribe el código
Para escribir una aplicación en Python, haz lo siguiente:
- Navega al directorio principal:
cd ~ - Crea el directorio
codelab-genai.mkdir codelab-genai - Navega al directorio
codelab-genai:cd codelab-genai - Crea un archivo
main.py:touch main.py - Crea el archivo
requirements.txtcon la lista de dependencias:cat > requirements.txt << EOF Flask==3.0.0 gunicorn==20.1.0 EOF - Abre el archivo
main.pyen el editor de Cloud Shell: Ahora debería aparecer un archivo vacío en la parte superior de la pantalla. Aquí puedes editar este archivocloudshell edit main.pymain.py.
- Copia el siguiente código y pégalo en el archivo
main.pyabierto: Después de unos segundos, el editor de Cloud Shell guardará tu código automáticamente. Este código responde a las solicitudes HTTP con nuestro saludo “Hello world!”.import os from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return f"Hello world!" if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))
El código inicial de tu aplicación está terminado y listo para almacenarse en el control de versión.
8. Crea un repositorio
- Regresa a la terminal de Cloud Shell en la parte inferior de la pantalla.
- Asegúrate de seguir en el directorio correcto:
cd ~/codelab-genai - Inicializa tu repositorio de Git
git init -b main - Accede a la CLI de GitHub.
Presionagh auth loginEnterpara aceptar las opciones predeterminadas y sigue las instrucciones en la herramienta de la CLI de GitHub, incluidas las siguientes:- ¿A qué cuenta quieres acceder?
GitHub.com - ¿Cuál es tu protocolo preferido para las operaciones de Git en este host?
HTTPS - ¿Quieres autenticar Git con tus credenciales de GitHub?
Y(omite este paso si no aparece). - ¿Cómo deseas autenticar la CLI de GitHub?
Login with a web browser - Copia tu código de un solo uso
- Abre https://github.com/login/device.
- Pega tu código de uso único
- Haz clic en Autorizar GitHub.
- Completa tu acceso
- ¿A qué cuenta quieres acceder?
- Confirma que accediste a tu cuenta:
Si accediste correctamente, se mostrará tu nombre de usuario de GitHub.gh api user -q ".login" - Crea una variable de
GITHUB_USERNAMEGITHUB_USERNAME=$(gh api user -q ".login") - Confirma que creaste la variable de entorno:
Si creaste la variable correctamente, debería mostrarse tu nombre de usuario de GitHub.echo ${GITHUB_USERNAME} - Crea un repositorio de GitHub vacío llamado
codelab-genai: Si recibes el siguiente error, haz lo siguiente:gh repo create codelab-genai --private Entonces, ya tienes un repositorio llamadoGraphQL: Name already exists on this account (createRepository)
codelab-genai. Tienes dos opciones para seguir este instructivo:- Borra el repositorio de GitHub existente
- Crea un repositorio con un nombre diferente y recuerda cambiarlo en los siguientes comandos.
- Agrega el repositorio
codelab-genaicomo eloriginremoto:git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
9. Comparte tu código
- Confirma que estás en el directorio correcto:
cd ~/codelab-genai - Agrega todos los archivos del directorio actual a esta confirmación:
git add . - Crea la primera confirmación:
git commit -m "add http server" - Envía tu confirmación a la rama
maindel repositorioorigin:git push -u origin main
Puedes ejecutar este comando y visitar la URL resultante para ver el código de tu aplicación en GitHub:
echo -e "\n\nTo see your code, visit this URL:\n \
https://github.com/${GITHUB_USERNAME}/codelab-genai/blob/main/main.py \n\n"
10. Configura implementaciones automáticas
- Deja abierta la pestaña del editor de Cloud Shell. Volveremos a esta pestaña más adelante.
- En una pestaña nueva, visita la página de Cloud Run.
- Selecciona el proyecto de Google Cloud correcto en la consola
. - Haz clic en CONNECT REPO.
- Haz clic en CONFIGURAR CON CLOUD BUILD.
- Selecciona GitHub como Proveedor de repositorio.
- Si no accediste a tu cuenta de GitHub en el navegador, hazlo con tus credenciales.
- Haz clic en Autenticar y, luego, en Continuar.
- Después de acceder, verás un mensaje en la página de Cloud Run que indica La app de GitHub no está instalada en ninguno de tus repositorios.
- Haz clic en el botón INSTALAR GOOGLE CLOUD BUILD.
- En la página de configuración de la instalación, selecciona Only select repositories y elige el repositorio codelab-genai que creaste a través de la CLI.
- Haz clic en Instalar.
- Nota: Si tienes muchos repositorios de GitHub, la carga puede tardar unos minutos.
- Selecciona
your-user-name/codelab-genaicomo el repositorio- .
- Si el repositorio no está presente, haz clic en el vínculo Administrar repositorios conectados.
- Deja Rama como
^main$. - Haz clic en Go, Node.js, Python, Java, .NET Core, Ruby o PHP a través de los buildpacks de Google Cloud.
- Deja los otros campos (
Build context directory,EntrypointyFunction target) como están.
- Deja los otros campos (
- Haga clic en Guardar.
- Selecciona GitHub como Proveedor de repositorio.
- Desplázate hacia abajo hasta Authentication.
- Haz clic en Permitir invocaciones sin autenticar.
- Haz clic en CREAR.
Una vez que finalice la compilación (lo que tardará varios minutos), ejecuta este comando y visita la URL resultante para ver tu aplicación en ejecución:
echo -e "\n\nOnce the build finishes, visit your live application:\n \
"$( \
gcloud run services list | \
grep codelab-genai | \
awk '/URL/{print $2}' | \
head -1 \
)" \n\n"
11. Cómo cambiar tu código
Regresa al editor de Cloud Shell.
Si aún tienes abierto el editor de Cloud Shell, puedes omitir estos pasos.
- Navega al Editor de Cloud Shell.
- Si la terminal no aparece en la parte inferior de la pantalla, ábrela:
- Haz clic en el menú de hamburguesa
. - Haz clic en Terminal.
- Haz clic en Terminal nueva.

- Haz clic en el menú de hamburguesa
- En la terminal, configura tu proyecto con este comando:
- Formato:
gcloud config set project [PROJECT_ID] - Ejemplo:
gcloud config set project lab-project-id-example - Si no recuerdas el ID de tu proyecto, haz lo siguiente:
- Puedes enumerar todos los IDs de tus proyectos con el siguiente comando:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- Puedes enumerar todos los IDs de tus proyectos con el siguiente comando:
- Formato:
- Si se te solicita autorización, haz clic en Autorizar para continuar.

- Deberías ver el siguiente mensaje:
Si ves unUpdated property [core/project].
WARNINGy se te preguntaDo you want to continue (Y/N)?, es probable que hayas ingresado el ID del proyecto de forma incorrecta. PresionaN, presionaEntery vuelve a intentar ejecutar el comandogcloud config set project.
Agrega Vertex AI a tu aplicación
- Regresa a la terminal de Cloud Shell en la parte inferior de la pantalla.
- Asegúrate de seguir en el directorio correcto:
cd ~/codelab-genai - Agrega la dependencia del SDK de Vertex AI a las dependencias existentes:
sed -i -e '$agoogle-cloud-aiplatform==1.59.0' requirements.txt - Agrega la biblioteca de autenticación de Google a las dependencias existentes:
sed -i -e '$agoogle-auth==2.32.0' requirements.txt - Vuelve a abrir
main.pyen el editor de Cloud Shellcloudshell edit main.py - Reemplaza el código de tu archivo
main.pypor lo siguiente:import os from flask import Flask, request import google.auth import vertexai from vertexai.generative_models import GenerativeModel _, project = google.auth.default() app = Flask(__name__) @app.route("/") def hello_world(): vertexai.init(project=project, location="us-central1") model = GenerativeModel("gemini-1.5-flash") animal = request.args.get("animal", "dog") prompt = f"Give me 10 fun facts about {animal}. Return this as html without backticks." response = model.generate_content(prompt) return response.text if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))
12. Volver a implementar
- Asegúrate de que aún te encuentres en el directorio correcto en Cloud Shell:
cd ~/codelab-genai - Ejecuta estos comandos para confirmar una nueva versión de tu aplicación en tu repositorio local de Git:
git add . git commit -m "add latest changes" - Envía los cambios a GitHub:
git push - Cuando finalice la compilación, ejecuta este comando y visita la aplicación implementada:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Es posible que la compilación tarde varios minutos en finalizar antes de que puedas ver los cambios.
Puedes ver el historial de todas las revisiones aquí: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
13. (Opcional) Audita tu uso de Vertex AI
Al igual que con otros servicios de Google Cloud, puedes auditar las operaciones de Vertex AI. Los registros de auditoría te ayudan a responder las preguntas “¿Quién hizo qué, dónde y cuándo?”. Los registros de auditoría administrativos de Vertex AI están habilitados de forma predeterminada. Para auditar las solicitudes de generación de contenido, debes habilitar los registros de auditoría de acceso a los datos:
- En la consola de Google Cloud, ve a la página Registros de auditoría:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administración. - Asegúrate de que el proyecto de Google Cloud existente sea aquel en el que crearás tu aplicación de Cloud Run.
- En la tabla Configuración de los registros de auditoría de acceso a los datos, busca y selecciona
Vertex AI APIen la columna Servicio. - En la pestaña Tipos de registro, selecciona los tipos de registros de auditoría de acceso a los datos
Admin readyData read. - Haz clic en Guardar.
Después de habilitarlo, podrás ver los registros de auditoría de cada invocación de la aplicación. Para ver los registros de auditoría con detalles de invocación, haz lo siguiente:
- Regresa a tu aplicación implementada y actualiza la página para activar el registro.
- En la consola de Google Cloud, ve a la página Explorador de registros:
- En la ventana de consultas, escribe lo siguiente:
LOG_ID("cloudaudit.googleapis.com%2Fdata_access") protoPayload.serviceName="aiplatform.googleapis.com" - Haz clic en Ejecutar consulta.
Los registros de auditoría capturan el uso de la API de Vertex AI, pero no te permiten observar datos relacionados con la carga de trabajo, como instrucciones o detalles de respuestas.
14. (Opcional) Aumenta la observabilidad de tu carga de trabajo de IA
Los registros de auditoría no capturan información relacionada con la carga de trabajo. Para aumentar la observabilidad de tus cargas de trabajo, debes registrar esta información de forma explícita. Para ello, puedes usar tu framework de registro favorito. En los siguientes pasos, se muestra cómo hacerlo con el mecanismo de registro nativo de Node.js.
- Vuelve a abrir
main.pyen el editor de Cloud Shellcloudshell edit ~/codelab-genai/main.py - Después de la línea
import os(línea 1), agrega las siguientes líneas: Estas líneas cambian el formato predeterminado de los registros de Python para que sigan el formato estructurado de JSON que se puede transferir a Google Cloud.import sys, json, logging class JsonFormatter(logging.Formatter): def format(self, record): json_log_object = { "severity": record.levelname, "message": record.getMessage(), } json_log_object.update(getattr(record, "json_fields", {})) return json.dumps(json_log_object) logger = logging.getLogger(__name__) sh = logging.StreamHandler(sys.stdout) sh.setFormatter(JsonFormatter()) logger.addHandler(sh) logger.setLevel(logging.DEBUG) - Después de la línea que llama a
model.generate_content(prompt)(línea 34), agrega las siguientes líneas: Este código imprime la información estructurada sobre la generación de contenido enjson_fields = {"prompt": prompt, "response": response.to_dict()} logger.debug("Content is generated", extra={"json_fields": json_fields})stdout, donde el agente de registro la lee y la transfiere a Cloud Logging. - Vuelve a abrir Cloud Shell y escribe el siguiente comando para asegurarte de que estás en el directorio correcto:
cd ~/codelab-genai - Confirma los cambios:
git commit -am "observe generated content" - Envía los cambios a GitHub para activar la reimplementación de la versión modificada:
git push
Después de implementar la nueva versión, puedes observar la información de depuración sobre las llamadas a Vertex AI.
Para ver los registros de tu aplicación, haz lo siguiente:
- En la consola de Google Cloud, ve a la página Explorador de registros:
- En la ventana de consultas, escribe lo siguiente:
LOG_ID("run.googleapis.com%2Fstdout") severity=DEBUG - Haz clic en Ejecutar consulta.
El resultado de la búsqueda muestra registros con la instrucción y la respuesta de Vertex AI, incluidas las “calificaciones de seguridad” que se pueden usar para supervisar las prácticas de seguridad.
15. (Opcional) 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 de contenedor en Artifact Registry. Puedes borrar tu proyecto de Cloud para evitar que se generen cargos. Si borras tu proyecto de Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.
Si quieres, borra el proyecto:
gcloud projects delete $GOOGLE_CLOUD_PROJECT
También puedes borrar los recursos innecesarios de tu disco de Cloud Shell. Puedes hacer lo siguiente:
- Borra el directorio del proyecto del codelab:
rm -rf ~/codelab-genai - Advertencia. Esta acción no se puede deshacer. Si quieres borrar todo el contenido de Cloud Shell para liberar espacio, puedes borrar todo tu directorio principal. Ten cuidado de guardar en otro lugar todo lo que quieras conservar.
sudo rm -rf $HOME
16. Felicitaciones
En este lab, escribiste una aplicación web y configuraste Cloud Run para implementar automáticamente tu aplicación cuando se realizaba un cambio en el código fuente de la aplicación. Luego, modificaste tu aplicación y la volviste a implementar.
Si disfrutaste este lab, puedes volver a intentarlo en otro lenguaje de programación o framework: