Как подключить Google Cloud Library для хранилища данных к серверу разработки App Engine? - PullRequest
0 голосов
/ 25 сентября 2019

Мы планируем миграцию внутреннего приложения, работающего в стандартной среде Google App Engine для Java 8, с замененных в настоящее время API-интерфейсов App Engine на рекомендуемую клиентскую библиотеку для Cloud Firestore в режиме хранилища данных , также для того, чтобы разрешить портирование в другие среды выполнения.

Помимо множества проблем с отсутствующими операторами запросов IN / OR, мы также боремся с настройкой для локального тестирования: согласно ИспользованиеЛокальный сервер разработки Java 8

Веб-сервер разработки моделирует хранилище данных, используя локальное хранилище данных на вашем компьютере.Хранилище данных называется local_db.bin и создается в каталоге WAR вашего приложения, в каталоге WEB-INF / appengine-Генерируемый /.

, но мы не знаем, как подключить Google CloudКлиентская библиотека для восстановления данных в локальном эмуляторе.

Определение учетных данных по умолчанию с помощью

gcloud auth application-default login

или установка переменной среды GOOGLE_APPLICATION_CREDENTIALS после получения учетных данных для учетной записи службы с чем-то вроде

gcloud iam service-accounts keys create key.json \
    --iam-account=project-id@appspot.gserviceaccount.com

, как предложено в другом месте, просто приводит к подключению клиентской библиотеки к реальному облачному серверу, а не к локальному эмулятору, в соответствии с политикой ADC .

I 'я ожидал, что сервер разработки автоматически предоставит подсказки подключения к клиентской библиотеке, но это, очевидно, не так.

Любые предложения по настройке локальной среды тестирования, учитывая, что мы не можем просто перейти наstandalone Datastore Emulator , так как нам нужны другие услуги, предоставляемые в настоящее время натолько сервером разработки App Engine (например, отправка электронной почты)?


Редактировать / После дальнейшей обработки мы работаем над этой проблемой, используя как локальный сервер разработки, так и автономное хранилище данных.Эмулятор как:

gcloud beta emulators datastore start \
  —project=project-id \
  --host-port=localhost:8081 \
  --data-dir=target/war

DATASTORE_EMULATOR_HOST=localhost:8081 java_dev_appserver.sh \
 --port=8080 \
 target/war

Однако этот процесс довольно громоздок и его трудно автоматизировать: мы ищем способ автоматического подключения клиентской библиотеки Google к эмулятору хранилища данных, управляемому локальным сервером разработки Java 8при запуске приложения с чем-то вроде плагина App Engine Maven , например mvn appengine:run.

...