[JAVA] J'ai essayé d'utiliser l'API à distance avec GAE / J

Je voulais importer les données d'environnement de production localement avec GAE / J, j'ai donc essayé d'utiliser l'API Remote. Cette section décrit comment acquérir des données par accès à distance depuis GAE dans l'environnement local vers la production et enregistrer les données acquises dans la banque de données locale.

supposition

Il est implémenté dans les versions suivantes.

Préparation

Activer l'API distante

Ajoutez ce qui suit au projet web.xml.

web.xml


<servlet>
  <display-name>Remote API Servlet</display-name>
  <servlet-name>RemoteApiServlet</servlet-name>
  <servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>RemoteApiServlet</servlet-name>
  <url-pattern>/remote_api</url-pattern>
</servlet-mapping>

Ajouter appengine-remote-api.jar

Pour utiliser le composant client de l'API distante, ajoutez $ {JAVA-SDK-ROOT} / lib / appengine-remote-api.jar au répertoire WEB-INF / lib et passez-le par le chemin de la classe.

la mise en oeuvre

Importez localement les données du nom de genre "livre".

import com.google.appengine.tools.remoteapi.RemoteApiInstaller;
import com.google.appengine.tools.remoteapi.RemoteApiOptions;

// ...
		RemoteApiOptions options = new RemoteApiOptions()
			.server("your_app_id.appspot.com", 443)				
			.useApplicationDefaultCredential();
		RemoteApiInstaller installer = new RemoteApiInstaller();
		DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
		List<Entity> books;
		try {
			installer.install(options);
			Query q = new Query("book");
			books = datastore.prepare(q).asList(FetchOptions.Builder.withDefaults());
		} finally {
			installer.uninstall();
		}
		
		//Migrer les données pour le stockage local
		List<Entity> devBooks = new ArrayList<>();
		for (Entity book : books) {
			Entity devBook = new Entity(book.getKind(), book.getKey().getName());
			devBook.setPropertiesFrom(book);
			devBooks.add(devBook);
		}
		datastore.put(devBooks);

Cela ne fonctionnait pas si je datastore.put () les données que j'ai obtenues de la production, mais j'ai pu les obtenir localement en utilisant la méthode ci-dessus.

Recommended Posts

J'ai essayé d'utiliser l'API à distance avec GAE / J
J'ai essayé l'API de message LINE (line-bot-sdk-python) avec GAE
J'ai essayé APN (notification à distance) à l'aide de l'API REST Parse.com
J'ai essayé d'utiliser l'API checkio
J'ai essayé d'utiliser l'API de données YOUTUBE V3
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
J'ai essayé d'utiliser l'API BigQuery Storage
J'ai essayé d'utiliser l'API COTOHA (il y a aussi du code sur GitHub)
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser l'API Detect Labels d'AWS Rekognition
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser l'API Google Cloud Vision
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser ESPCN
J'ai essayé d'utiliser openpyxl
[Pythonocc] J'ai essayé d'utiliser la CAO sur un notebook Jupyter
J'ai essayé d'utiliser Ipython
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé d'utiliser Jupyter
J'ai essayé d'utiliser doctest
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser jinja2
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser la fenêtre de temps
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai essayé d'utiliser PySpark de Jupyter 4.x sur EMR
[J'ai essayé d'utiliser Pythonista 3] Introduction
J'ai essayé d'utiliser easydict (mémo).
J'ai essayé la reconnaissance faciale avec Face ++
J'ai essayé d'utiliser RandomForest
J'ai essayé d'utiliser BigQuery ML
J'ai essayé d'utiliser Amazon Glacier
J'ai essayé d'utiliser git inspector
J'ai essayé d'utiliser magenta / TensorFlow
J'ai essayé MLflow sur Databricks
J'ai essayé d'utiliser AWS Chalice
J'ai essayé d'utiliser l'émojinateur Slack
J'ai essayé la nouvelle API de détection d'objets de tensorflow sur macOS Sierra
J'ai essayé de rechercher des vidéos à l'aide de l'API de données Youtube (débutant)
[Avec image] J'ai essayé d'utiliser neofetch sur différents OS!
J'ai essayé d'utiliser l'API de reconnaissance faciale des services cognitifs de Microsoft
J'ai essayé d'utiliser "Syncthing" pour synchroniser des fichiers sur plusieurs PC
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
J'ai essayé AdaNet pour les données de table
J'ai essayé d'utiliser Rotrics Dex Arm # 2
J'ai essayé de créer l'API Quip