2017-08-16 1 views
0

J'ai une application déployée à l'aide de Google App Engine pour Java. Comment puis-je utiliser le magasin de données distant (depuis la production) avec un serveur de développement local?Comment accéder à la banque de données de production à partir de mon serveur de développement local en utilisant Java?

Ma question est très similaire à that one, seulement je pose des questions sur Java et pas Python.

+0

Quel est votre cas d'utilisation? Vous pouvez remplacer votre application par un identifiant de projet différent et utiliser l'admin de datastore pour cloner la banque de données d'un projet à un autre. En passant, je suis sûr que la solution 'bulkloader.py' de la question que vous avez liée est juste un script autonome que vous pouvez exécuter. ce n'est pas grave que votre projet soit en Java. – Alex

Répondre

1

Le programme local peut être authentifié par service-account.

Here et here est docs sur l'utilisation de service-account dans le programme java.

Utilisation variable env:

export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json 

Ou fournir les informations d'identification de fichier JSON:

import com.google.auth.oauth2.GoogleCredentials; 
import com.google.cloud.datastore.Datastore; 
import com.google.cloud.datastore.DatastoreOptions; 
import com.google.cloud.datastore.Entity; 
import com.google.cloud.datastore.Key; 
import com.google.cloud.datastore.KeyFactory; 

DatastoreOptions options = DatastoreOptions.newBuilder() 
    .setProjectId(PROJECT_ID) 
    .setCredentials(GoogleCredentials.fromStream(
    new FileInputStream(PATH_TO_JSON_KEY))).build(); 
Datastore datastore = options.getService(); 
KeyFactory keyFactory = datastore.newKeyFactory().setKind(KIND); 
Key key = keyFactory.newKey(keyName); 
Entity entity = datastore.get(key);