Curso de Google App Engine

Integración de Google Cloud Datastore con NDB

Curso de Google App Engine

Contenido del curso

Integración de Google Cloud Datastore con NDB

Resumen

Google Cloud Datastore simplifica el almacenamiento de datos a escala con alta confiabilidad. Aquí verás cómo integrarlo con App Engine usando NDB, desde el despliegue hasta las consultas, siguiendo un flujo probado y claro. Conecta conceptos como entidad, kind, propiedad y key con ejemplos prácticos y comandos esenciales de GCloud para producción.

¿Qué es Google Cloud Datastore y cómo se estructura?

Datastore es una base de datos no SQL pensada para backends: altamente escalable, replicada entre zonas de cómputo y confiable. Soporta transacciones ACID, acceso vía APIs REST, autoescalado y autenticación. Así, la escritura de datos queda distribuida para disponibilidad y rendimiento.

¿Por qué Datastore es una base de datos no SQL escalable?

  • Replica información en varias zonas de cómputo para resiliencia.
  • Exposición vía APIs REST de uso sencillo.
  • Soporta transacciones ACID para consistencia.
  • Autoescalado transparente para cargas variables.

¿Qué significan entidad, kind, propiedad y key?

  • Entidad: un objeto o registro almacenado.
  • Kind: la categoría del objeto, equivalente conceptual a una tabla en SQL.
  • Propiedad: un atributo o campo dentro de la entidad.
  • Key: la llave única (ID) de cada entidad.

¿Qué aporta la librería NDB en App Engine?

NDB es la librería de Google para Python en App Engine. Permite:

  • Crear y consultar entidades con clases y métodos simples.
  • Controlar indexación por propiedad para acelerar consultas.
  • Usar métodos como put (almacenar) y get (recuperar).

¿Cómo desplegar en App Engine con GCloud y app.yaml?

El flujo inicia en la consola de Google: console.cloud.google.com. Desde Google Cloud Shell se descarga el código, se configura con app.yaml y se hace deploy a producción.

¿Cómo preparar el entorno en Google Cloud Shell?

  • Abrir Cloud Shell y ubicarse en el directorio preferido.
  • Clonar el repositorio desde GitHub; si faltan permisos, usar sudo.
git clone <URL-del-repositorio> cd <carpeta-del-repo>
  • Listar archivos y confirmar que existe app.yaml.

¿Qué contiene el archivo app.yaml?

  • Variables y configuración para el despliegue en App Engine.
  • Definición del servicio por defecto y parámetros básicos.

Puntos clave:

  • Usar el ID del proyecto correcto al desplegar.
  • Mantener variables preconfiguradas para evitar errores en producción.

¿Cómo ejecutar gcloud app deploy y abrir la URL?

  • Desplegar indicando el proyecto.
gcloud app deploy app.yaml --project <ID-del-proyecto>
  • Confirmar el descriptor y la ruta del proyecto.
  • Abrir la URL sugerida por GCloud.
gcloud app browse
  • Verificar que la aplicación responda correctamente en producción.

¿Cómo se almacena y consulta información en Datastore con NDB?

La aplicación implementa un flujo de solicitud de crédito: primero registra un usuario y luego procesa la solicitud con reglas simples, persistiendo todo en Datastore.

¿Cómo fluye el registro y la solicitud de crédito?

  • Formulario 1: identificación, nombre, apellido y email.
  • Si el usuario no existe, se registra y se confirma.
  • Formulario 2: NIT y salario.
  • Se calcula el resultado y se muestra aprobación con un valor.

¿Dónde ver entidades y datos en Datastore?

  • Ir a Storage > Datastore > Entidades en el proyecto.
  • Entidad usuario: nombre, apellido, identificación y correo.
  • Entidad solicitud: fecha de solicitud, identificación de usuario, NIT, salario, estatus aprobado y valor aprobado. Campos opcionales como fecha de ingreso pueden declararse según necesidad.

¿Cómo funcionan las consultas NDB y el método put?

  • Modelo usuario: atributos indexables como identificación (entero), nombre, apellido y email.
  • Consulta “obtener usuario por ID”: query por la propiedad identificación y uso de get para el objeto completo.
  • Registro de usuario: crear objeto usuario, asignar propiedades y ejecutar put para guardar (retornar con get si se requiere el objeto).
  • Modelo solicitud: incluye fecha de solicitud y demás campos del proceso.
  • Consulta de solicitudes recientes: ordenar por fecha de solicitud en forma descendente y limitar resultados con fetch (por ejemplo, cinco registros).
  • Registro de solicitud: persistencia con put y recuperación con get.

En conjunto, NDB ofrece una integración rápida y sencilla con Datastore en Python, especialmente cuando el entorno ya cuenta con las librerías de App Engine y el Cloud SDK instalado.

¿Tienes dudas o ideas para mejorar el flujo de datos? Comparte tu comentario y conversemos.