Вы можете сделать это, используя доступ к API Cloud Datastore. До сих пор я не могу сделать это с помощью библиотеки ndb.
Это код (Python) в вашем текущем приложении:
from google.appengine.api import app_identity
scope = "https://www.googleapis.com/auth/datastore"
authorization_token, _ = app_identity.get_access_token(scope)
headers = {'Content-Type': 'application/json', "Authorization": "Bearer " + authorization_token}
payload = {"gqlQuery": { "queryString": "SELECT * FROM Entities"} }
url = "https://datastore.googleapis.com/v1beta3/projects/otherAppName:runQuery"
result = urlfetch.fetch(url, payload=json.dumps(payload), method=urlfetch.POST,
follow_redirects=True, headers=headers)
просто замените «otherAppName» коротким именем другого приложения App Engine, к хранилищу данных которого вы хотите получить доступ. Замените «сущности» на имя модели, к которой вы хотите получить доступ. Не забудьте предоставить доступ к yourCurrentApp в otherNameApp (меню IAM в облачной консоли), установите разрешения для yourcurrentapp@appspot.gserviceaccount.com для доступа к хранилищу данных / проекту
В результате вы получите ответ, вы должны json-разобрать его, и вы получите очень низкий уровень детализации сущностей хранилища данных из запроса (включая ключи, пути, имена полей, типы и значения для каждого поля и каждого ряд результатов). Если у вас есть ndb.JsonProperties, вы получите значение BLOB (DATABLOB в следующем примере кода), вы должны преобразовать его:
from google.appengine.ext.bulkload import transform
b = json.loads(transform.blobproperty_from_base64(DATOBLOB))
Надеюсь, это поможет вам. Я жду ответа, используя ndb в моем другом посте:
Новая функция GAE NDB Datastore: доступ к сущностям хранилища данных из другого приложения GAE