Как подключиться к локальному облаку Google Datastore db?

У меня есть приложение GAE, которое создает некоторые данные в хранилище данных Google Cloud и сохраняет некоторые двоичные файлы в облачном хранилище Google - давайте назовем приложение WebApp. Теперь у меня есть другое приложение, работающее на Google Compute Engine. Давайте назовем приложение ComputeApp.

ComputeApp - это внутренний процесс, который обрабатывает данные, созданные WebApp. Ранее в этом вопросе я спрашивал, какой API можно использовать для связи с Datastore из ComputeApp. По предложению @proppy, я реализовал взаимодействие с Datastore с помощью API Cloud Cloud Datastore.

Все работает нормально, поскольку я общаюсь с хранилищем данных в облаке Google. Я использую сервис аутентификации аккаунта.

Теперь мне нужно запустить мой ComputeApp локально, на моем ПК для разработки, чтобы я взял данные, созданные локальным WebApp и сохраненные в локальном отладочном хранилище данных. Мне это нужно, потому что я хочу иметь среду тестирования, чтобы я мог отлаживать приложение GAE локально.

Как мне изменить код ComputeApp, чтобы он подключался к локальному отладочному хранилищу данных, а не к облаку Google?

Я много гуглил и не нашел ни совета, ни примера. Единственно возможный способ, которым я обнаружил, что я должен полностью переписать свой код и использовать другой API для этого. Таков Datastore Remote API. Это действительно единственный способ? Должен ли я действительно переписать весь ComputeApp для подключения к локальной БД? В самом деле?

Я надеюсь, что я просто упустил что-то важное, и это не правда...

1 ответ

Решение

Google Cloud Datastore имеет локальный сервер разработки, который вы можете использовать: https://developers.google.com/datastore/docs/tools/devserver

Вы можете создать и запустить локальное хранилище данных с помощью инструмента gcd, который связан с указанным выше документом.

Если вы используете DatastoreHelper.getDatastoreFromEnv(); чтобы построить хранилище данных, вы можете указать ему подключиться к локальной базе данных, экспортировав переменную env DATASTORE_HOST:

export DATASTORE_HOST=http://localhost:8080