¿Cómo puedo eliminar índices no utilizados en Google Application Engine?
-
03-07-2019 - |
Pregunta
He agregado accidentalmente un nuevo filtro para mi aplicación GAE. El estado del índice es "publicación" ahora; sin embargo, no necesito ese índice en absoluto y me gustaría eliminarlo. ¿Cómo puedo hacer eso?
Solución
Está documentado aquí . Espero que ayude.
Eliminar índices no utilizados
Cuando cambia o elimina un índice de index.yaml, el índice original es no eliminado de App Engine automáticamente. Esto te da la oportunidad de dejar una versión anterior de la aplicación ejecutándose mientras nuevos índices se están construyendo, o para volver al versión anterior inmediatamente si hay un problema se descubre con una versión más nueva.
Cuando está seguro de que los índices antiguos son ya no es necesario, puedes eliminarlos de App Engine usando lo siguiente comando:
appcfg.py vacuum_indexes myapp/
Este comando elimina todos los índices de la aplicación que no se mencionan en la versión local de index.yaml.
Otros consejos
Para GAE / Java, la documentación incluye esta información :
Eliminar índices no utilizados
...
Cuando esté seguro de que ya no se necesitan índices antiguos, puede elimínelos de App Engine con la acción vacuum_indexes:
./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war
Este comando elimina todos los índices de la aplicación que no se mencionan en las versiones locales de datastore-indexes.xml y generado / datastore-indexes-auto.xml.
En Windows Google AppEngine Java , tenemos que usar el comando appcfg.cmd para eliminar índices no utilizados de la aplicación implementada.
Sintaxis:
appengine-java-sdk-path \ bin \ appcfg.cmd vacuum_indexes project-root-path \ poject-name \ war \
Para gae-java, como mencionó JochenJung, los " vacu_indexes " la herramienta funcionará, pero tendrá que emular un proyecto de Python de la siguiente manera:
Tenga en cuenta que la herramienta de vacío parece funcionar solo cuando se apunta a * .appspot.com, no al desarrollador local. medio ambiente.
- cree app.yaml para su aplicación y colóquelo en su directorio / myapp / root, como mínimo:
application: myproj
version: 4
runtime: python
api_version: 1
donde " versión " es la versión de tu aplicación, "myproj" el nombre GAE de su proyecto.
- crea un index.yaml y ponlo en el mismo directorio raíz. En lugar de poner laboriosamente en ese archivo la información del índice para los índices que desea mantener, resulta que la herramienta le dará una confirmación de sí / no para todos y cada uno de los índices que elimine, por lo que es más simple indicar que TODOS los índices deben eliminarse y usar la confirmación para conservar los que desea conservar.
indexes:
# AUTOGENERATED
Luego ejecute el comando como se muestra arriba,
/appcfg.py vacuum_indexes /path/to/myproj/
A partir de febrero de 2019 es ahora:
gcloud datastore indexes cleanup index.yaml
Si está utilizando maven mvn appengine: vacuum_indexes
. No es necesario mvn appengine: update
, el comando actualiza el servidor remoto.
Una lista completa de los comandos de Maven aquí .
En Windows usando Java, este comando funcionó para mí:
appcfg.cmd vacuum_indexes C:\Users\Name\AndroidStudioProjects\Project\backend\src\main\webapp\
Nota: asegúrese de tener un datastore-indexes.xml
en la carpeta webapp
(estos índices se guardarán).
Con la versión actual de gcloud, simplemente puede hacer:
gcloud datastore cleanup-indexes index.yaml
que es más intuitivo que llamar a appcfg.cmd [...].
gcloud datastore cleanup-indexes /path/to/file/index.yaml
este comando ya no funciona .
limpieza de índices de almacén de datos de gcloud /path/to/index.yaml
este es el nuevo comando .
debe ejecutarlos en Google Cloud Console
. normalmente puede cargar el archivo index.yaml
utilizando la función file upload
en google cloud console
. su archivo va directamente a un _admin
al que puede cd
y llamar,
gcloud datastore indexes cleanup index.yaml
Sugerencia
si está utilizando datastore
en un proyecto java , tiene datastore-indexes.xml
en lugar de index.yaml . Es posible que tenga problemas para encontrar el archivo
index.yaml
si no sabe dónde buscar.
simplemente puede encontrar la ruta del archivo index.yaml
mirando la consola de despliegue
en su IDE.