Сервер разработки предназначен для имитации всей среды App Engine. Если вы посмотрите на вывод команды dev_appserver.py
, вы увидите что-то вроде Starting Cloud Datastore emulator at: http://localhost:PORT
. Ваш код будет автоматически взаимодействовать с этим связанным хранилищем данных, отправляя и извлекая данные в соответствии с написанным вами кодом. Ваши данные будут сохранены в файле в локальном хранилище и будут сохраняться при разных запусках сервера разработки, если они явно не удалены.
Эта опция не предоставляет средств для импорта данных из существующего экземпляра Cloud Datastore, хотя это готовое решение go, если ваши процедуры тестирования могут позволить заполнить локальную базу данных фиктивными данными с помощью пользовательского созданный скрипт, который делает это программно. Если вы решили использовать этот подход, просто напишите сценарий создания данных и выполните его перед запуском тестов.
Теперь есть еще один вариант моделирования локального хранилища данных с помощью Cloud SDK, который поставляется с удобными функциями для ваших целей. Вы можете найти доступную информацию для этого в Запуск страницы документации эмулятора Datastore . Этот эмулятор поддерживает импорт объектов, загруженных из производственного хранилища данных Cloud, а также их экспорт в файлы.
Назад к вашим вопросам:
- Экспорт данных из экземпляра Cloud в GCS bucket следует this , затем загружает данные из bucket в вашу файловую систему после this , наконец импортирует данные в эмулятор с помощью команды, показанной here .
- Чтобы использовать эмулятор, сначала необходимо запустить
gcloud beta emulators datastore start
в облачной оболочке, а затем на отдельной вкладке запустить dev_appserver.py --support_datastore_emulator=true --datastore_emulator_port=8081 app.yaml
. - Сервер разработки использует один из двух вышеупомянутых эмуляторов, в в обоих случаях это не связано с вашим облачным хранилищем данных. Вы можете создать другой проект, предназначенный для целей разработки, с копией базы данных и развернуть там свое приложение, чтобы вообще не использовать эмулятор.
- Запросы в хранилище данных выполняются через конечную точку * 1031. *
https://datastore.googleapis.com/v1/projects/project-id
хотя это не связано с тем, как эмуляторы управляют соединениями на локальном сервере.
Надеюсь, это поможет.