datastore-indexes.xml не работает, не создает индекс после развертывания

#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.