7

Je suis en train de tester le datastore nuage de Google localement. Mes étapes de test sont:Python: Sauvegarder les données dans l'émulateur datastore nuage google

  1. les données d'exploration à l'aide Scrapy
  2. Enregistrer les données à datastore nuage en utilisant l'émulateur locale

J'ai suivi toutes les étapes pour utiliser l'émulateur locale

  1. démarrer l'émulateur local: gcloud beta emulators datastore start
  2. définir les variables d'environnement local: gcloud beta emulators datastore env-init

Cependant, en python, lorsque l'on utilise la commande suivante pour datastore nuage d'accès, il toujours enregistrer les données directement à Google Cloud au lieu de les enregistrer dans les émulateurs locaux

#Imports the Google Cloud client library 
from google.cloud import datastore 

# Instantiates a client 
datastore_client = datastore.Client() 

sample_entry = some_data 

# Saves the entity 
datastore_client.put(sample_entry) 

Il semble que vous ne pouvez pas préciser la bibliothèque d'utiliser l'émulateur datastore local, tout comme ce qu'ils offrent dans leur client Node.js

var datastore = gcloud.datastore({ 
     apiEndpoint: "http://localhost:8380" 
}); 

Ma question est, Comment puis-je demander à la bibliothèque de python datastore nuage Google pour utiliser l'émulateur locale au lieu d'utiliser la c fort directement

+1

Quelle est la valeur de la variable d'environnement 'DATASTORE_EMULATOR_HOST' après avoir appelé' env-init'? –

+1

Alors que j'en fais toujours partie pour les tests locaux et la mise en service, l'environnement Google Cloud est si désespérément alambiqué que je ne recommanderais certainement pas d'utiliser leurs paquets d'émulation de plate-forme. Des bugs comme celui-ci, ainsi que des incohérences dans le comportement avec l'environnement de déploiement réel, en font un mal de tête qui ne vaut pas la peine d'avoir; à moins qu'il y ait une raison pour laquelle vous ne pouvez pas, je suggère simplement d'utiliser un projet de mise en scène dans l'environnement du nuage. – kungphu

+0

Probablement, vous pouvez doubler vérifier la configuration de votre émulateur suivant les étapes données ici: https://cloud.google.com/datastore/docs/tools/datastore-emulator –

Répondre

0

Vous devez eval $(gcloud beta emulators datastore env-init).

gcloud beta emulators datastore env-init imprime uniquement les commandes qui définissent les variables d'environnement nécessaires.