Datastore-Emulator ausführen

Mit dem Datastore-Emulator können Sie die Datastore-Produktionsumgebung lokal emulieren. Sie können den Emulator verwenden, um Ihre Anwendung lokal zu entwickeln und zu testen. Darüber hinaus können Sie den Emulator nutzen, um Indexe für Ihre Firestore-Produktionsinstanz im Datastore-Modus zu generieren und nicht benötigte Indexe zu löschen. Auf dieser Seite werden Sie Schritt für Schritt durch die Installation des Emulators, seinen Start sowie die Festlegung der Umgebungsvariablen geführt, um Ihre Anwendung mit dem Emulator zu verbinden.

Vorbereitung

Zur Verwendung des Datastore-Emulators benötigen Sie Folgendes:

Emulator installieren

Der Datastore-Emulator ist eine Komponente des gcloud-Tools des Google Cloud SDK. Mit dem Befehl gcloud components install können Sie den Datastore-Emulator installieren:

gcloud components install cloud-datastore-emulator
    

Emulator-Datenverzeichnisse

Der Emulator simuliert Datastore dadurch, dass eine /WEB-INF/appengine-generated/local_db.bin-Datei in einem angegebenen Datenverzeichnis erstellt und Daten in local_db.bin gespeichert werden. Standardmäßig verwendet der Emulator das Datenverzeichnis ~/.config/gcloud/emulators/datastore/. Die Datei local_db.bin bleibt zwischen den Sitzungen des Emulators erhalten. Sie können mehrere Datenverzeichnisse einrichten und jedes dieser Verzeichnisse als separate, lokale Instanz im Datastore-Modus betrachten. Um den Inhalt einer local_db.bin-Datei zu löschen, beenden Sie den Emulator und löschen Sie die Datei manuell.

Emulator starten

Führen Sie zum Starten des Emulators über eine Eingabeaufforderung den Befehl datastore start aus:

gcloud beta emulators datastore start [flags]
    

Dabei sind [flags] optionale Befehlszeilenargumente, die an das gcloud-Befehlszeilentool übergeben werden. Beispiel:

  • Mit --data-dir=[DATA_DIR] wird das Datenverzeichnis des Emulators geändert. Der Emulator erstellt die Datei /WEB-INF/appengine-generated/local_db.bin in [DATA_DIR] oder verwendet eine vorhandene Datei, falls verfügbar.

  • Mit --no-store-on-disk wird der Emulator so konfiguriert, dass für die Emulatorsitzung keine Daten auf dem Laufwerk gespeichert werden.

Die vollständige Liste optionaler Flags finden Sie in der Referenz zu gcloud beta emulators datastore start.

Nach dem Starten des Emulators wird eine Meldung wie die Folgende angezeigt:

...
    [datastore] Dev App Server is now running.
    

Um den Emulator zu beenden, drücken Sie über die Eingabeaufforderung Strg-C.

Umgebungsvariablen festlegen

Nachdem Sie den Emulator gestartet haben, müssen Sie Umgebungsvariablen festlegen, damit Ihre Anwendung eine Verbindung zum Emulator und nicht zur Produktionsdatenbank im Datastore-Modus herstellt. Legen Sie die Umgebungsvariablen auf dem Computer fest, auf dem auch die Anwendung ausgeführt wird.

Sie müssen die Umgebungsvariablen bei jedem Start des Emulators festlegen. Die Umgebungsvariablen hängen von dynamisch zugewiesenen Portnummern ab, die sich beim Neustart des Emulators ändern können.

Variablen automatisch einstellen

Wenn die Anwendung und der Emulator auf demselben Computer ausgeführt werden, können Sie die Umgebungsvariablen automatisch festlegen:

Linux/macOS

Führen Sie env-init mit Befehlsersetzung aus:

$(gcloud beta emulators datastore env-init)
    

Windows

Erstellen Sie eine Batchdatei und verwenden Sie bei der Ausführung die Ausgabe von env-init:

gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd
    

Ihre Anwendung stellt nun eine Verbindung zum Datastore-Emulator her.

Variablen manuell einstellen

Wenn die Anwendung und der Emulator auf unterschiedlichen Computern ausgeführt werden, legen Sie die Umgebungsvariablen manuell fest:

  1. Führen Sie den Befehl env-init aus:

    gcloud beta emulators datastore env-init
  2. Legen Sie auf dem Computer, auf dem Ihre Anwendung ausgeführt wird, die Umgebungsvariablen und -werte so fest, wie sie in der Ausgabe des Befehls env-init angegeben sind. Beispiel:

    Linux/macOS
        export DATASTORE_EMULATOR_HOST=localhost:8432
        export DATASTORE_PROJECT_ID=my-project-id
    Windows
    set DATASTORE_EMULATOR_HOST=localhost:8432
        set DATASTORE_PROJECT_ID=my-project-id

Ihre Anwendung stellt nun eine Verbindung zum Datastore-Emulator her.

Indexe aktualisieren und löschen

Wenn Sie Ihre Anwendung mit dem Emulator ausführen, können Sie für die Produktionsdatenbank im Datastore-Modus Indexe generieren und nicht benötigte Indexe löschen. Weitere Informationen finden Sie unter gcloud-Tool verwenden.

Umgebungsvariablen entfernen

Nachdem Sie Ihre Arbeit mit dem Emulator abgeschlossen haben, beenden Sie ihn (Strg-C) und entfernen Sie die Umgebungsvariablen, damit Ihre Anwendung wieder mit der Produktionsdatenbank im Datastore-Modus verbunden wird.

Variablen automatisch entfernen

Wenn die Anwendung und der Emulator auf demselben Computer ausgeführt werden, können Sie die Umgebungsvariablen automatisch entfernen:

Linux/macOS

Führen Sie env-unset mit Befehlsersetzung aus:

$(gcloud beta emulators datastore env-unset)
    

Windows

Erstellen Sie eine Batchdatei und verwenden Sie bei der Ausführung die Ausgabe von env-unset:

gcloud beta emulators datastore env-unset > remove_vars.cmd && remove_vars.cmd
    

Die Anwendung wird nun mit Ihrer Produktionsdatenbank im Datastore-Modus verbunden.

Variablen manuell entfernen

Wenn die Anwendung und der Emulator auf unterschiedlichen Computern ausgeführt werden, entfernen Sie die Umgebungsvariablen manuell:

  1. Führen Sie den Befehl env-unset aus:

    gcloud beta emulators datastore env-unset
  2. Legen Sie auf dem Computer, auf dem die Anwendung ausgeführt wird, die Umgebungsvariablen und den Wert fest, wie in der Ausgabe des Befehls env-unset angegeben. Beispiel:

    Linux/macOS
        unset DATASTORE_EMULATOR_HOST
        unset DATASTORE_PROJECT_ID
    Windows
        set DATASTORE_EMULATOR_HOST=
        set DATASTORE_PROJECT_ID=

Die Anwendung wird nun mit Ihrer Produktionsdatenbank im Datastore-Modus verbunden.