Как я могу удалить неиспользуемые индексы в Google Application Engine?
-
03-07-2019 - |
Вопрос
Я уже случайно добавленный новый фильтр для моего приложения GAE.Статус индекса сейчас "обслуживается" - однако мне этот индекс вообще не нужен, и я бы хотел его удалить.Как я могу это сделать?
Решение
Это задокументировано здесь . Надеюсь, это поможет.
Удаление неиспользуемых индексов
Когда вы изменяете или удаляете индекс из index.yaml исходный индекс не удаляется из App Engine автоматически. Это дает вам возможность оставить старую версию приложения, запущенного в то время как новые индексы строятся, или вернуться к старая версия сразу, если проблема обнаружен с более новой версией.
Когда вы уверены, что старые индексы больше не нужно, вы можете удалить их из App Engine, используя следующее Команда:
appcfg.py vacuum_indexes myapp/
Эта команда удаляет все индексы для приложения, которые не упомянуты в локальной версии index.yaml.
Другие советы
Для GAE / Java документация включает в себя эта информация:
Удаление Неиспользуемых индексов
...
Когда вы будете уверены, что старые индексы больше не нужны, вы можете удалить их из App Engine с помощью действия vacuum_indexes:
./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war
Эта команда удаляет все индексы для приложения, которые не упомянуты в локальных версиях datastore-indexes.xml и сгенерированных/datastore-indexes-auto.xml.
В Windows Google AppEngine Java мы должны использовать команду appcfg.cmd для удаления неиспользуемых индексов развернутого приложения. Р>
Синтаксис:
appengine-java-sdk-path \ bin \ appcfg.cmduum_indexes project-root-path \ poject-name \ war \
Для gae-java, как упоминал Йохенджунг, инструмент "vacuum_indexes" будет работать, но вам придется эмулировать проект python следующим образом:
Обратите внимание, что инструмент вакуумирования, похоже, работает только при указании на * .appspot.com, а не на локального разработчика.Окружающая среда.
- создайте app.yaml для своего приложения и поместите это в свой /myapp / корневой каталог, минимально:
application: myproj
version: 4
runtime: python
api_version: 1
где "version" - это версия вашего приложения, "myproj" - название GAE вашего проекта.
- создайте index.yaml и поместите его в тот же корневой каталог.Вместо того, чтобы кропотливо вводить в этот файл индексную информацию для индексов, которые вы хотите сохранить, оказывается, что инструмент собирается выдавать вам подтверждение "да" / "нет" для каждого удаляемого индекса, поэтому проще просто указать, что ВСЕ индексы должны быть удалены, и использовать подтверждение для сохранения тех, которые вы хотите сохранить.
indexes:
# AUTOGENERATED
Затем выполните команду, как показано выше,
/appcfg.py vacuum_indexes /path/to/myproj/
По состоянию на февраль 2019 года это сейчас:
gcloud datastore indexes cleanup index.yaml
Если вы используете maven mvn appengine :uum_indexes
. Нет необходимости mvn appengine: update
, команда обновляет удаленный сервер.
Полный список команд maven здесь .
В Windows, использующей Java, эта команда работала для меня:
appcfg.cmd vacuum_indexes C:\Users\Name\AndroidStudioProjects\Project\backend\src\main\webapp\
Примечание. Убедитесь, что у вас есть datastore-indexes.xml
в папке webapp
(эти индексы будут сохранены). р>
С текущей версией gcloud вы можете просто сделать:
gcloud datastore cleanup-indexes index.yaml
, который более интуитивен, чем вызов appcfg.cmd [...].
индексы очистки хранилища данных gcloud /path/to/file/index.yaml
эта команда больше не работает . Р>
хранилище данных gcloud индексирует очистку /path/to/index.yaml
это новая команда . Р>
вы должны запустить их в облачной консоли Google
. Обычно вы можете загрузить файл index.yaml
, используя функцию загрузка файла
в облачной консоли Google
. ваш файл отправляется непосредственно в _admin
, куда вы можете cd
и позвонить,
хранилище данных gcloud индексирует очистку index.yaml
Совет
если вы используете хранилище данных
в Java-проекте , у вас есть datastore-indexes.xml
вместо index.yaml код>. У вас могут возникнуть проблемы с поиском файла
index.yaml
, если вы не знаете, где искать.
вы можете просто найти путь к файлу index.yaml
, посмотрев консоль развертывания
в вашей IDE. Р>