Эмулятор хранилища данных Google Cloud - при запуске бета-версии эмуляторов gcloud не удается создать local_db.bin - PullRequest
0 голосов
/ 01 апреля 2019

У меня установлен Google Cloud SDK под Windows, и я запускаю команды в Powershell (от имени администратора).

Я выполнил следующее, чтобы убедиться, что все мои компоненты Google Cloud SDK обновлены:

gcloud component update

Затем я установил домен хоста эмулятора хранилища данных и идентификатор проекта, например:

set DATASTORE_EMULATOR_HOST=localhost:8081
set DATASTORE_PROJECT_ID=project-id

Затем я запускаю Эмулятор режима облачного хранилища данных Google , используя следующую команду:

gcloud beta emulators datastore start

Это предназначено для создания файла local_db.bin,это обеспечивает локальный доступ к данным.Когда я запускаю команду, я получаю сообщение в терминале (Powershell, работающий от имени администратора), что файл будет создан в следующем месте:

C: \ Users \ myUserName \ AppData \ Roaming \ gcloud \ emulators\ datastore \ WEB-INF \ appengine-генерируемый \ local_db.bin

Файл не создается, и нет полезной информации об ошибке.Я сделал следующее:

  • Проверил список учетных записей, доступных для gcloud SDK, используя gcloud auth list
  • Убедитесь, что я вошел в систему с использованием предполагаемогоаккаунт, используя gcloud auth login 'accountName' и используя Google, войдите в систему

Как получить дополнительную информацию о причине ошибки?Что еще я мог попробовать?

1 Ответ

2 голосов
/ 01 апреля 2019

Не удалось создать local_db.bin.Это просто указывает на то, что база данных пуста.Вы можете проверить, что все работает как положено, если вы откроете браузер и перейдете к http://localhost:8081,, когда сервер работает.Вы должны получить сообщение ok в качестве ответа.

Как указано в Запуск эмулятора режима хранилища данных> Каталоги данных эмулятора раздел документации, " Чтобы очистить содержимое файла local_db.bin, остановите эмулятор и удалите файл вручную. ».Это означает, что таким образом вы очищаете все содержимое базы данных.

Я попробовал документацию, и на самом деле файл local_db.bin отсутствует в начале.Однако после добавления некоторых данных в базу данных файл был сгенерирован.Мне удалось это сделать, создав приложение Python на основе примеров Google GitHub .

ПРИМЕЧАНИЕ. Я бы также предложил запустить эмулятор внутри указанного вами собственного каталога вместо каталога по умолчанию,таким образом, вы убедитесь, что у вас есть все разрешения каталога.Например, для этого выполните следующие шаги:

  1. Внутри рабочего стола создайте каталог с именем Datastore_Emulator
  2. Выполните команду: $ gcloud beta emulators datastore start --data-dir=C:\Users\[USERNAME]\Desktop\Datastore_Emulator\
  3. Это создаст пустойdirectory C:\Users\[USERNAME]\Desktop\Datastore_Emulator\WEB-INF\appengine-generated\
  4. Теперь создайте, например, скрипт Python, добавьте некоторые данные в базу данных, и будет создан файл local_db.bin.

UPDATE

В документации, на которую вы ссылаетесь, команды в разделе Windows предназначены для командной строки.&& не поддерживается для объединения команд в Power shell, но вместо этого вам нужно использовать ;.Обратитесь к этому Stackoverflow ответу для получения дополнительной информации.

Также там команда gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd не поддерживается Power Shell, так как при ее запуске могут возникнуть проблемы с сгенерированным set_vars.cmd файл.В будущем предлагается использовать командную строку для выполнения команд, упомянутых в документации Google.

...