appengine настроил локальный хост с хранилищем данных для тестирования - PullRequest
0 голосов
/ 12 января 2020

Я пытался следовать документации Google по настройке локальной разработки с использованием базы данных (https://cloud.google.com/appengine/docs/standard/python/tools/using-local-server#Python_Using_the_Datastore). Тем не менее, у меня нет уровня опыта, чтобы следовать. Я даже не уверен, что это был правильный гид. Приложение представляет собой проект Django, который использует python 2.7. Чтобы запустить локальный хост, я обычно набираю dev_appserver.py --host 127.0.0.1 .

Мои вопросы:

  1. как мне загрузить базу данных хранилища данных в облаке Google. Я не хочу загружать всю базу данных, достаточно данных для заполнения локального хоста, чтобы я мог делать тесты

  2. после загрузки базы данных, что мне нужно сделать, чтобы подключить ее к местный хост? Нужно ли где-то изменить параметр?

  3. мне нужно загрузить хранилище данных? Могу ли я просто сделать копию в облаке и затем подключиться к этому хранилищу данных?

  4. Когда я запускаю localhost, разве он не должен быть подключен к хранилищу данных? Так как сайт работает, когда он работает в облаке. Где я могу найти URI соединения?

Спасибо за помощь

1 Ответ

2 голосов
/ 13 января 2020

Сервер разработки предназначен для имитации всей среды App Engine. Если вы посмотрите на вывод команды dev_appserver.py, вы увидите что-то вроде Starting Cloud Datastore emulator at: http://localhost:PORT. Ваш код будет автоматически взаимодействовать с этим связанным хранилищем данных, отправляя и извлекая данные в соответствии с написанным вами кодом. Ваши данные будут сохранены в файле в локальном хранилище и будут сохраняться при разных запусках сервера разработки, если они явно не удалены.

Эта опция не предоставляет средств для импорта данных из существующего экземпляра Cloud Datastore, хотя это готовое решение go, если ваши процедуры тестирования могут позволить заполнить локальную базу данных фиктивными данными с помощью пользовательского созданный скрипт, который делает это программно. Если вы решили использовать этот подход, просто напишите сценарий создания данных и выполните его перед запуском тестов.

Теперь есть еще один вариант моделирования локального хранилища данных с помощью Cloud SDK, который поставляется с удобными функциями для ваших целей. Вы можете найти доступную информацию для этого в Запуск страницы документации эмулятора Datastore . Этот эмулятор поддерживает импорт объектов, загруженных из производственного хранилища данных Cloud, а также их экспорт в файлы.

Назад к вашим вопросам:

  1. Экспорт данных из экземпляра Cloud в GCS bucket следует this , затем загружает данные из bucket в вашу файловую систему после this , наконец импортирует данные в эмулятор с помощью команды, показанной here .
  2. Чтобы использовать эмулятор, сначала необходимо запустить gcloud beta emulators datastore start в облачной оболочке, а затем на отдельной вкладке запустить dev_appserver.py --support_datastore_emulator=true --datastore_emulator_port=8081 app.yaml.
  3. Сервер разработки использует один из двух вышеупомянутых эмуляторов, в в обоих случаях это не связано с вашим облачным хранилищем данных. Вы можете создать другой проект, предназначенный для целей разработки, с копией базы данных и развернуть там свое приложение, чтобы вообще не использовать эмулятор.
  4. Запросы в хранилище данных выполняются через конечную точку * 1031. * https://datastore.googleapis.com/v1/projects/project-id хотя это не связано с тем, как эмуляторы управляют соединениями на локальном сервере.

Надеюсь, это поможет.

...