Ich versuche Google Cloud Datastore lokal zu testen. Meine Testschritte sind:Python: Speichern von Daten in Google Cloud-Datenspeicher-Emulator
- Daten Crawl mit Scrapy
- Daten speichern in der Cloud-Datenspeicher lokalen Emulator
ich alle Schritte unternehmen, um anschließend den lokalen Emulator
-
zu verwenden
- lokalen Emulator starten:
gcloud beta emulators datastore start
- lokale Umgebungsvariablen festlegen:
gcloud beta emulators datastore env-init
jedoch in Python, wenn Sie den folgenden Befehl für den Zugriff Cloud-Datenspeicher verwenden, ist es immer die Daten speichern direkt auf Google Cloud, anstatt sie an die lokalen Emulatoren
#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)
Speichern Es scheint, wie kann man nicht geben sie die Bibliothek den lokalen Datenspeicher-Emulator zu verwenden, wie, was sie in ihrem Node.js Client bieten
var datastore = gcloud.datastore({
apiEndpoint: "http://localhost:8380"
});
Meine Frage ist: Wie kann ich die google Cloud Datastor python-Bibliothek frage lokalen Emulator zu verwenden, anstatt die die Verwendung c laut direkt
Welchen Wert hat die Umgebungsvariable 'DATASTORE_EMULATOR_HOST' nach dem Aufruf von 'env-init'? –
Während ich immer für lokales Testen und Entwickeln bin, ist die Google Cloud-Umgebung so hoffnungslos verschachtelt, dass ich definitiv ihre Plattform-Emulationspakete nicht empfehlen würde. Bugs wie diese, sowie Inkonsistenzen im Verhalten mit der tatsächlichen Einsatzumgebung, machen es zu einem Kopfschmerz, den es nicht wert ist; es sei denn, es gibt einen Grund, warum Sie das nicht können, würde ich vorschlagen, ein Staging-Projekt nur in der Cloud-Umgebung zu verwenden. – kungphu
Wahrscheinlich möchten Sie die Einrichtung Ihres Emulators anhand der hier beschriebenen Schritte noch einmal überprüfen: https://cloud.google.com/datastore/docs/tools/datastore-emulator –