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

У меня установлен 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\ эмуляторы \ хранилищу \WEB-INF\ AppEngine сгенерированных \local_db.bin

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

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

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

1 ответ

Решение

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. Это создаст пустой каталог C:\Users\[USERNAME]\Desktop\Datastore_Emulator\WEB-INF\appengine-generated\
  4. Теперь создайте, например, скрипт Python, добавьте некоторые данные в базу данных и local_db.bin файл будет создан.

ОБНОВИТЬ

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

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