Как я могу программно определить, какие индексы хранилища данных ошибочны?

Когда я запускаю update_indexes в Google Datastore, я получаю сообщение ниже. Он предлагает мне определить, какие индексы ошибочны, посмотрев на графический интерфейс, а затем удалить эти индексы.

У меня 51 ошибочный индекс из 200, и скопировать их из графического интерфейса невозможно.

(Изменить: кропотливо удалив и добавив индексы из datastore-indexes.xml, мы выявили один проблемный индекс.)

Хорошая процедура DevOps требует, чтобы мы делали подобные вещи автоматически.

Как программно определить, какие индексы имеют ошибку? (Python, bash или даже Java в порядке.)

Cannot build indexes that are in state ERROR.To vacuum and rebuild your indexes:
1. Create a backup of your index.yaml specification.
2. Determine the indexes in state ERROR from your admin console: https://appengine.google.com/datastore/indexes?&app_id=s~myproject
3. Remove the definitions of the indexes in ERROR from your index.yaml file.
4. Run "appcfg.py vacuum_indexes your_app_dir/"
5. Wait until the ERROR indexes no longer appear in your admin console.
6. Replace the modified version of your index.yaml file with the original.
7. Run "appcfg.py update_indexes your_app_dir/"

person Joshua Fox    schedule 10.11.2016    source источник


Ответы (1)


К сожалению, Cloud Datastore не имеет общедоступного API для управления индексами, а текущие инструменты командной строки используют внутренний API, у которого нет доступа к этой информации.

Мы планируем выпустить API управления индексами где-то в следующем году (уже работаем над дизайном), и я позабочусь о том, чтобы мы рассмотрели этот ключевой вариант использования.

person Dan McGrath    schedule 16.11.2016