#google-app-engine #google-cloud-datastore
#google-app-engine #google-облачное хранилище данных
Вопрос:
Я создал тип с именем User в хранилище данных Google App Engine и пытаюсь добавить индекс для этого типа.
Во-первых, я следил https://cloud.google.com/appengine/docs/standard/java/config/indexconfig для создания индекса путем добавления datastore-indexes.xml внутри war / WEB-INF, но это не работает, индекс не создается после развертывания в app engine.
код в моем datastore-indexes.xml:
<?xml version="1.0" encoding="utf-8"?>
<datastore-indexes autoGenerate="false">
<datastore-index kind="User" ancestor="false" source="manual">
<property name="area" direction="asc"/>
<property name="coins_balance" direction="asc"/>
</datastore-index>
</datastore-indexes>
Затем я последовал https://cloud.google.com/appengine/docs/standard/python/config/indexref , я создал index.yaml и запустил gcloud app deploy index.yaml
, на этот раз индекс действительно создан.
Итак, кто-нибудь может помочь мне понять, почему datastore-indexes.xml в моем случае не работает, спасибо.
Комментарии:
1. Как вы выполнили развертывание в App Engine? Нравится
appcfg.sh update_indexes path/to/datastore-indexes.xml
? Потому что, если вы явно / вручную не развернете этот файл, как вы сделали позже, это не будет иметь никакого эффекта.2. Я вижу, но у меня нет appcfg.sh есть только gcloud, поэтому, думаю, я буду придерживаться index.yaml
3. Да, если вы используете gcloud вместо appcfg, придерживайтесь формата yaml, описанного здесь , но логика та же, вам нужно запустить
gcloud app deploy index.yaml
для развертывания индексов.4. большое спасибо Мангу, проблема решена.
Ответ №1:
Как описано на странице java index config и отмечено в комментариях, datastore-indexes.xml поддерживается только через appcfg.sh на данный момент. Чтобы использовать gcloud, вам нужно настроить свои индексы в виде файла yaml.