Como acessar um datastore remoto ao executar o dev_appserver.py?

Eu estou tentando executar um servidor web localhost que tem access remoto API para um datastore remoto usando o método remote_api_stub ConfigureRemoteApiForOAuth .

Eu tenho usado o seguinte documento do Google para referência, mas acho bastante escasso:

https://cloud.google.com/appengine/docs/python/tools/remoteapi

Eu acredito que estou perdendo o bit de autenticação, mas não consigo encontrar um recurso concreto para me orientar. Qual seria a maneira mais fácil, dado o exemplo de código a seguir, para acessar um datastore remoto enquanto executava o dev_appserver.py ?

 import webapp2 from google.appengine.ext import ndb from google.appengine.ext.remote_api import remote_api_stub class Topic(ndb.Model): created_by = ndb.StringProperty() subject = ndb.StringProperty() @classmethod def query_by_creator(cls, creator): return cls.query(Topic.created_by == creator) class MainPage(webapp2.RequestHandler): def get(self): remote_api_stub.ConfigureRemoteApiForOAuth( '#####.appspot.com', '/_ah/remote_api' ) topics = Topic.query_by_creator('bill') self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('') self.response.out.write('

TOPIC SUBJECTS:

') for topic in topics.fetch(10): self.response.out.write('

' + topic.subject + '

') self.response.out.write('') app = webapp2.WSGIApplication([ ('/', MainPage) ], debug=True)

Isso é muito solicitado, simplesmente porque você não pode usar bibliotecas de mecanismos de aplicativos fora do SDK. No entanto, também há uma maneira mais fácil de fazer isso no SDK do App Engine.

Eu usaria o gcloud para isso. Veja como configurá-lo:

Se você quiser interagir com os serviços de armazenamento em nuvem do Google dentro ou fora do ambiente do Google App Engine, use o Gcloud ( https://googlecloudplatform.github.io/gcloud-python/stable/ ) para fazer isso.

Você precisa de uma conta de serviço em seu aplicativo, bem como fazer o download do arquivo de credenciais JSON. Você faz isso no console do Google App Engine sob a guia de authentication . Crie e faça o download. Chame client_secret.json ou algo assim.

Com eles, depois de instalar os pacotes adequados para gcloud com pip, você poderá fazer consultas e gravar dados.

Aqui está um exemplo de autenticação para usar a biblioteca:

 from gcloud import datastore # the location of the JSON file on your local machine os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/location/client_secret.json" # project ID from the Developers Console projectID = "THE_ID_OF_YOUR_PROJECT" os.environ["GCLOUD_TESTS_PROJECT_ID"] = projectID os.environ["GCLOUD_TESTS_DATASET_ID"] = projectID client = datastore.Client(dataset_id=projectID) 

Feito isso, você pode fazer consultas como esta:

 query = client.query(kind='Model').fetch() 

Na verdade é super fácil. Qualquer um, é assim que eu faria isso! Felicidades.