Configura los índices de Datastore con el archivo index.yaml

Puedes usar Cloud Datastore para almacenar datos de las aplicaciones que se ejecutan en el entorno flexible. Cloud Datastore usa índices por cada consulta que hace la aplicación. Estos índices se actualizan cada vez que una entidad cambia, para que cuando la aplicación haga una consulta, los resultados se muestren rápidamente. Para esto, Cloud Datastore debe saber con antelación qué consultas hará la aplicación. En un archivo de configuración index.yaml debes especificar qué índices necesita la aplicación. Puedes usar el emulador de Cloud Datastore para crear el archivo de forma automática mientras pruebas la aplicación o puedes escribir el archivo tú mismo. Debes subir el archivo index.yaml cuando implementes la aplicación.

Acerca de index.yaml

Cada consulta de una aplicación a Cloud Datastore requiere de un índice correspondiente. Los índices para las consultas simples, como las de una sola propiedad, se crean de manera automática. Los índices para consultas complejas deben definirse en un archivo de configuración llamado index.yaml. Este archivo se sube con la aplicación para crear índices en Cloud Datastore.

El siguiente es un ejemplo de un archivo index.yaml:

indexes:

- kind: Cat
  ancestor: no
  properties:
  - name: name
  - name: age
    direction: desc

- kind: Cat
  properties:
  - name: name
    direction: asc
  - name: whiskers
    direction: desc

- kind: Store
  ancestor: yes
  properties:
  - name: business
    direction: asc
  - name: owner
    direction: asc

La sintaxis de index.yaml es el formato YAML. Visita el sitio web de YAML para obtener más información sobre este formato.

Definiciones de los índices

El archivo index.yaml contiene un solo elemento de lista llamado indexes. Cada elemento de la lista representa un índice de la aplicación.

Un elemento índice puede tener los siguientes elementos:

kind
La categoría de entidad de la consulta. Generalmente, este es el nombre de la clase de Modelo que define el modelo para las entidades. Se requiere este elemento.
properties

Una lista de las propiedades que deben incluirse como columnas del índice, en el orden de clasificación deseado: primero, las propiedades de los filtros de igualdad; luego, las propiedades de los filtros de desigualdad; por último, los órdenes de clasificación y sus sentidos.

Cada elemento de la lista se compone de los elementos siguientes:

name
El nombre del almacén de datos de la propiedad.
direction
El sentido en que se realiza la clasificación, ya sea asc (ascendente) o desc (descendente). Esto solo es obligatorio en las propiedades que se usan en los órdenes de clasificación de la consulta y debe coincidir con el sentido que usa la consulta. La configuración predeterminada es asc.
ancestor

yes si la consulta tiene una cláusula principal (ya sea Query.ancestor()o una cláusula GQL ANCESTOR IS). La configuración predeterminada es no.

Crea archivos de índice

Puedes crear un archivo de índice manualmente usando un editor de texto y siguiendo el diseño de archivo descrito anteriormente. Un enfoque más eficiente es la generación automática del archivo mientras pruebas la aplicación a nivel local. Puedes combinar los dos métodos.

Cuando realices las pruebas en tu entorno local, puedes usar el comando de emulador de gcloud para iniciar un servicio que emule Cloud Datastore antes de ejecutar la aplicación:

gcloud beta emulators datastore start --data-dir DATA-DIR

Usa la marca --data-dir para especificar el directorio en el que aparecerá el archivo index.yaml generado automáticamente.

Cada vez que pruebas la aplicación y generas una consulta de Cloud Datastore, el emulador agrega una definición de índice generada a index.yaml. Todos los índices generados automáticamente aparecerán en el archivo, debajo de la línea siguiente:

# AUTOGENERATED

Se considera que todas las definiciones de índices ubicadas por encima de esta línea son de control manual, por lo que el servidor web de desarrollador no las actualiza. El servidor web solo modificará lo que esté por debajo de la línea y lo hará siempre que el archivo index.yaml completo no describa un índice que corresponda a una consulta que haya ejecutado la aplicación. Para controlar una definición de índice automática, se coloca por encima de esta línea.

El emulador puede actualizar las definiciones existentes que estén por debajo de esta línea mientras la aplicación realiza consultas. Si mientras pruebas la aplicación, esta genera cada consulta que luego realizará, se completarán las entradas generadas en index.yaml. Quizá necesites editar el archivo manualmente para borrar los índices que no se utilizan en la producción o definir los índices que no se crearon mientras se realizaban las pruebas.

Implementa el archivo de índice

Antes de implementar la aplicación, debes utilizar el siguiente comando de gcloud para implementar el archivo index.yaml:

gcloud app deploy index.yaml
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación del entorno de App Engine Flexible para Python