Come posso rimuovere gli indici inutilizzati in Google Application Engine?
-
03-07-2019 - |
Domanda
Ho aggiunto accidentalmente un nuovo filtro per la mia applicazione GAE. Lo stato dell'indice ora è "disponibile", tuttavia non ho bisogno di tale indice e vorrei rimuoverlo. Come posso farlo?
Soluzione
È documentato qui . Spero che sia d'aiuto.
Eliminazione di indici non utilizzati
Quando cambi o rimuovi un indice da index.yaml, l'indice originale è non cancellato da App Engine automaticamente. Questo ti dà il possibilità di lasciare una versione precedente dell'app in esecuzione mentre nuovi indici sono in fase di creazione o per ripristinare il file versione precedente immediatamente se un problema viene scoperto con una versione più recente.
Quando sei sicuro che lo siano gli indici precedenti non è più necessario, è possibile eliminarli da App Engine utilizzando quanto segue comando:
appcfg.py vacuum_indexes myapp/
Questo comando elimina tutti gli indici per l'app che non sono menzionati nella versione locale di index.yaml.
Altri suggerimenti
Per GAE / Java, la documentazione include queste informazioni :
Eliminazione di indici non utilizzati
...
Quando sei sicuro che i vecchi indici non sono più necessari, puoi farlo eliminali da App Engine usando l'azione vacuum_indexes:
./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war
Questo comando elimina tutti gli indici per l'app che non sono menzionati in le versioni locali di datastore-indexes.xml e generata / datastore-indici-auto.xml.
In Windows Google AppEngine Java , dobbiamo usare il comando appcfg.cmd per eliminare gli indici inutilizzati dell'applicazione distribuita.
Sintassi:
appengine-java-sdk-path \ bin \ appcfg.cmd vacuum_indexes project-root-path \ poject-name \ war \
Per gae-java, come menzionato da JochenJung, il "vacuum_indexes" lo strumento funzionerà, ma dovrai emulare un progetto Python nel modo seguente:
Notare che lo strumento del vuoto sembra funzionare solo se puntato su * .appspot.com, non sul dev locale. ambiente.
- crea app.yaml per la tua app e inseriscilo nella tua directory / myapp / root, almeno:
application: myproj
version: 4
runtime: python
api_version: 1
dove " versione " è la versione della tua app, " myproj " il nome GAE del tuo progetto.
- crea un index.yaml e mettilo nella stessa directory root. Invece di mettere faticosamente in quel file le informazioni sugli indici per gli indici che vuoi conservare, si scopre che lo strumento ti darà una conferma sì / no per ogni indice che elimina, quindi è più semplice solo per indicare che TUTTI gli indici dovrebbero essere eliminati e utilizzare la conferma per preservare quelli che si desidera conservare.
indexes:
# AUTOGENERATED
Quindi esegui il comando come mostrato sopra,
/appcfg.py vacuum_indexes /path/to/myproj/
Da febbraio 2019 è ora:
gcloud datastore indexes cleanup index.yaml
Se stai usando maven mvn appengine: vacuum_indexes
. Non è necessario mvn appengine: update
, il comando aggiorna il server remoto.
Un elenco completo dei comandi maven qui .
Su Windows che utilizza Java, questo comando ha funzionato per me:
appcfg.cmd vacuum_indexes C:\Users\Name\AndroidStudioProjects\Project\backend\src\main\webapp\
Nota: assicurati di avere un datastore-indexes.xml
nella cartella webapp
(questi indici verranno risparmiati).
Con l'attuale versione di gcloud, puoi semplicemente fare:
gcloud datastore cleanup-indexes index.yaml
che è più intuitivo di chiamare appcfg.cmd [...].
gcloud datastore cleanup-indexes /path/to/file/index.yaml
questo comando non funziona più .
gcloud datastore indicizza cleanup /path/to/index.yaml
questo è il nuovo comando .
dovresti eseguirli in google cloud console
. normalmente puoi caricare il file index.yaml
utilizzando la funzione upload file
nella console di Google Cloud
. il tuo file va a un _admin
chiamato direttamente cd
e chiama,
gcloud datastore indicizza cleanup index.yaml
Suggerimento
se stai usando archivio dati
in un progetto java , hai datastore-indexes.xml
invece di index.yaml
. Potresti avere qualche problema a trovare il file index.yaml
se non sai dove cercare.
puoi semplicemente trovare il percorso del file index.yaml
guardando la console di distribuzione
nel tuo IDE.