
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Authenticate API Requests
/ 25
Create an App Engine instance and Storage Bucket
/ 25
Run the Application
/ 25
Deploy the App
/ 25
En este lab, aprenderás a implementar una aplicación web de Flask escrita en Python en el entorno flexible de App Engine. La aplicación de ejemplo permite que el usuario suba una foto del rostro de alguien y descubra qué tan probable es que esa persona esté feliz. La aplicación usa las APIs de Google Cloud para Vision, Storage y Datastore.
Las aplicaciones de Google App Engine son fáciles de crear, mantener y escalar a medida que cambian tus necesidades de almacenamiento de datos y tráfico. Con App Engine, no tendrás que mantener servidores. Solo debes subir tu aplicación y estará lista para usar.
Las aplicaciones de App Engine se escalan automáticamente según el tráfico entrante. El balanceo de cargas, los microservicios, la autorización, las bases de datos SQL y NoSQL, la división del tráfico, el registro, la búsqueda, el control de versiones, el lanzamiento, la reversión y el análisis de seguridad son compatibles de forma nativa y sumamente personalizables.
El entorno flexible de App Engine es compatible con una gran cantidad de lenguajes de programación, como Java, Python, PHP, Node.js, Ruby y Go. El entorno estándar de App Engine es una opción adicional para ciertos lenguajes, incluido Python. Los dos entornos proporcionan a los usuarios máxima flexibilidad en el comportamiento de sus aplicaciones, ya que cada uno posee determinadas ventajas. Lee Elige un entorno de App Engine para obtener más información.
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
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: Ordene las pestañas en ventanas separadas, una junto a la otra.
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
Haz clic en Siguiente.
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
También puedes encontrar la contraseña en el panel Detalles del lab.
Haz clic en Siguiente.
Haga clic para avanzar por las páginas siguientes:
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
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. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
Haz clic en Autorizar.
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
flex_and_vision
:Las APIs de Vision, Storage y Datastore se habilitan automáticamente para que las uses en este lab. Para hacer solicitudes a las APIs, necesitará credenciales de cuentas de servicio. Puedes generar credenciales desde tu proyecto con gcloud en Cloud Shell. Tu ID del proyecto se encuentra en la pestaña en la que comenzaste el lab.
Este comando genera una clave de cuenta de servicio que se almacena en un archivo JSON llamado key.json
en tu directorio principal.
Obtén más información para autenticar la API de Vision en la guía de inicio rápido para configurar la API de Vision.
Haz clic en Revisar mi progreso a continuación para revisar tu progreso en el lab.
env
con virtualenv:env
:pip
para instalar las dependencias de tu proyecto desde el archivo requirements.txt
:El archivo requirements.txt
es una lista de las dependencias de paquetes que necesitas para tu proyecto. El comando anterior descargó todas estas dependencias de paquetes en virtualenv.
Haz clic en Revisar mi progreso a continuación para revisar tu progreso en el lab.
En tu navegador, se abrirá una pestaña y se conectará al servidor que acabas de iniciar. Deberías ver algo como esto:
Ahora todo se pondrá más interesante.
Después de subir una foto, deberías ver algo como esto:
Haz clic en Revisar mi progreso a continuación para revisar tu progreso en el lab.
La muestra tiene el siguiente diseño:
Este archivo de Python es una aplicación web de Flask. La aplicación permite que los usuarios envíen fotos (preferentemente de rostros), las cuales se almacenan en Cloud Storage y se analizan con la función de detección de rostro de la API de Cloud Vision. La información clave sobre cada foto se almacena en Datastore, la base de datos NoSQL de Google Cloud, a la que se accede cada vez que un usuario visita el sitio web.
Esta aplicación usa las bibliotecas cliente de Google Cloud para Storage, Datastore y Vision. Estas bibliotecas cliente facilitan el acceso a las APIs de Cloud desde tus lenguajes de programación preferidos.
Veamos algunos fragmentos clave del código.
En la sección de importaciones, ubicada en la parte superior, importamos los distintos paquetes que necesitamos para nuestro código. Importamos las bibliotecas cliente de Google Cloud para Datastore, Storage y Vision de esta manera:
Este código muestra lo que sucede cuando un usuario visita la URL raíz del sitio web. Se crea un objeto cliente de Datastore, que se usa para acceder a la biblioteca cliente de esta solución. Se ejecuta una consulta en Datastore para entidades del tipo Rostros
. Por último, se procesa la plantilla HTML y se pasa image_entities
, que extrajimos de Datastore como una variable.
Analicemos cómo se guardan las entidades en Datastore. Datastore es la solución de base de datos NoSQL de Google Cloud. Los datos se almacenan en objetos llamados entidades. A cada entidad se le asigna una clave única de identificación, que se puede crear usando un tipo y una cadena de nombre de clave. Un tipo es un bucket de organización que designa el tipo de entidad que es. Por ejemplo, recomendamos que configures tipos para fotos, personas y animales.
Cada entidad puede tener múltiples propiedades definidas por el desarrollador, que pueden tener valores de varios tipos, incluidos números enteros, números de punto flotante, cadenas, fechas o datos binarios:
De manera similar a Datastore, se puede acceder a las bibliotecas cliente de Storage y Vision de forma programática. Puedes abrir el archivo main.py tú mismo con vim, emacs o nano para explorar todo el código de muestra.
El framework web de Flask aprovecha Jinja2 como un motor de plantillas. Esto nos permite pasar variables y expresiones de main.py
a homepage.html
que se reemplazan por valores cuando la página se procesa.
Obtén más información sobre Jinja2 en la documentación de Template Designer.
Esta plantilla HTML de Jinja2 muestra un formulario para que los usuarios envíen fotos a la base de datos. También muestra cada imagen que se envió antes junto con su nombre de archivo, fecha y hora de carga, y la probabilidad de que el rostro detectado por la API de Vision esté feliz.
El entorno flexible de App Engine utiliza un archivo llamado app.yaml
para describir la configuración de implementación de una aplicación. Si falta ese archivo, App Engine intentará deducir la configuración de la implementación. Sin embargo, se recomienda proporcionar este archivo.
app.yaml
con el editor que prefieras: vim, nano o emacs. Usaremos el editor nano
:app.yaml
esté abierto, reemplaza <your-cloud-storage-bucket>
por el nombre de tu bucket de Cloud Storage. Si olvidaste el nombre de tu bucket de Cloud Storage, copia el ID del proyecto en el panel de detalles del lab.La sección env_variables
define las variables de entorno que se usarán en main.py
cuando se implemente la aplicación.
python_version
de 3 a 3.7 para implementar tu aplicación de App Engine correctamente.Tu archivo debería verse así:
Esta es la configuración básica que se necesita para implementar una aplicación de Python 3 en el entorno flexible de App Engine. Puedes obtener más información para configurar App Engine en la guía Configura tu app con app.yaml.
nano
:gcloud
para implementar tu aplicación en App Engine:Si aparece la pregunta Do you want to continue (Y/n), escribe Y y presiona INTRO.
Observa Cloud Shell mientras se compila la aplicación. Este proceso puede demorar hasta 10 minutos. El entorno flexible de App Engine aprovisiona automáticamente una instancia de máquina virtual de Compute Engine para ti en segundo plano y, luego, instala la aplicación y la inicia.
gcloud config list project
en Cloud Shell.Haz clic en Revisar mi progreso a continuación para revisar tu progreso en el lab.
¡Felicitaciones! En este lab, aprendiste a escribir y a implementar una aplicación web de Python en el entorno flexible de App Engine.
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 13 de octubre de 2023
Prueba más reciente del lab: 13 de octubre de 2023
Copyright 2025 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
One lab at a time
Confirm to end all existing labs and start this one