Как настроить эмулятор GAE Datastore в Windows? - PullRequest
0 голосов
/ 08 июня 2019

После документов я запустил эмулятор хранилища данных GAE из оболочки CMD.

Я использовал:

gcloud beta emulators datastore start --data-dir=j:\projects\project\datastore

Вывод:

WARNING: Reusing existing data in [j:\projects\project\datastore].
Executing: cmd /c C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\cloud-datastore-emulator\cloud_datastore_emulator.cmd start --host=localhost --port=8081 --store_on_disk=True --consistency=0.9 --allow_remote_shutdown j:\projects\project\datastore
[datastore] Jun 08, 2019 5:24:52 PM com.google.cloud.datastore.emulator.CloudDatastore$FakeDatastoreAction$9 apply
[datastore] INFO: Provided --allow_remote_shutdown to start command which is no longer necessary.
[datastore] Jun 08, 2019 5:24:52 PM com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub <init>
[datastore] INFO: Local Datastore initialized:
[datastore]     Type: High Replication
[datastore]     Storage: j:\projects\jupiter\datastore\WEB-INF\appengine-generated\local_db.bin
[datastore] Jun 08, 2019 5:24:53 PM com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub load
[datastore] INFO: The backing store, j:\projects\project\datastore\WEB-INF\appengine-generated\local_db.bin, does not exist. It will be created.
[datastore] API endpoint: http://localhost:8081
[datastore] If you are using a library that supports the DATASTORE_EMULATOR_HOST environment variable, run:
[datastore]
[datastore]   export DATASTORE_EMULATOR_HOST=localhost:8081
[datastore]
[datastore] Dev App Server is now running.
[datastore]
[datastore] The previous line was printed for backwards compatibility only.
[datastore] If your tests rely on it to confirm emulator startup,
[datastore] please migrate to the emulator health check endpoint (/). Thank you!

Просмотр до localhost:8081 возвращает Ok

Во второй оболочке CMD я пытаюсь:

gcloud beta emulators datastore env-init --data-dir=j:\projects\project\datastore > set_vars.cmd && set_vars.cmd

(в документах Google не упоминается --data-dir=j:\projects\project\datastore, но без него инструмент выглядит не в том месте)

Но это не с:

ERROR: (gcloud.beta.emulators.datastore.env-init) Unable to find env.yaml in the data_dir 
[C:\Users\c\AppData\Roaming\gcloud\emulators\datastore]. Please ensure you have started the appropriate emulator.

Если я настраиваю переменные среды вручную, я получаю те же результаты от своих оболочек CMD.

1 Ответ

1 голос
/ 11 июня 2019

Я попытался воспроизвести ваш сценарий использования, и он сработал для меня.Вот что я выполнил:

  1. С Запуск эмулятора режима хранилища данных документация.
  2. Убедитесь, что Java JRE (версия 8 или выше) установлено.
  3. Установите Google Cloud SDK (Если уже есть, обновите его)
  4. Запустите CMD от имени администратора
  5. Выполнить$ gcloud components install cloud-datastore-emulator
  6. Exectue $ gcloud beta emulators datastore start --data-dir=C:\PATH\TO\datastore
  7. Если получить You do not currently have this command group installed. Using it requires the installation of components: [beta]
  8. Затем выполнить $ gcloud components install beta
  9. Выполнить снова $ gcloud beta emulators datastore start --data-dir=C:\PATH\TO\datastore
  10. Снова открыть новую CMD с правами администратора
  11. Выполнить $ gcloud beta emulators datastore env-init --data-dir=C:\PATH\TO\datastore > set_vars.cmd && set_vars.cmd
  12. Команда выполнена без проблем.Это ответ:
C:\Windows\system32>set DATASTORE_DATASET=[PROJECT_ID]

C:\Windows\system32>set DATASTORE_EMULATOR_HOST=localhost:8081

C:\Windows\system32>set DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore

C:\Windows\system32>set DATASTORE_HOST=http://localhost:8081

C:\Windows\system32>set DATASTORE_PROJECT_ID=[PROJECT_ID]

C:\Windows\system32>

Я бы предложил повторить процесс из другого каталога.Убедитесь, что:

  • У вас есть права администратора для доступа к каталогу.
  • В целях тестирования попробуйте каталог на рабочем столе.
  • Обновите Google Cloud SDK.
  • Путь к каталогу не содержит пробелов.
  • Оба CMD должны открываться с правами администратора.
...