Mit dem Emulator testen

Die Google Cloud CLI stellt einen lokalen Emulator im Speicher für Bigtable zur Verfügung, mit dem Sie Ihre Anwendung testen können. Da der Emulator die Daten nur im Arbeitsspeicher speichert, bleiben die Daten nicht über mehrere Ausführungen hinweg erhalten. Es soll Sie dabei unterstützen, Bigtable für lokale Entwicklungsaufgaben und Tests einzusetzen, und ist nicht für Produktionsbereitstellungen bestimmt.

Sie können den Emulator mit allen Cloud Bigtable-Clientbibliotheken verwenden.

Der Emulator stellt keine Admin-API zur Verfügung, um Instanzen und Cluster zu erstellen oder zu verwalten. Nach dem Start des Emulators können Sie sich mit jedem Instanz- oder Projektnamen mit ihm verbinden, um Tabellen zu erstellen und Daten zu lesen oder zu schreiben. Der Emulator unterstützt keine sichere Verbindung.

Emulator installieren und ausführen

Die beiden gängigsten Methoden zum Ausführen des Emulators sind die gcloud CLI und Docker. Wählen Sie die für Ihre Anwendungsentwicklung und Ihren Testworkflow geeignete Methode aus.

Authentifizierung einrichten

Sie können die gcloud CLI-Beispiele auf dieser Seite über eine der folgenden Entwicklungsumgebungen verwenden:

  • Cloud Shell: Aktivieren Sie Cloud Shell, um ein Onlineterminal mit der bereits eingerichteten gcloud CLI zu verwenden.

    Unten auf dieser Seite wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  • Lokale Shell: Zur Verwendung der gcloud CLI in einer lokalen Entwicklungsumgebung müssen Sie die gcloud CLI installieren und initialisieren.

gcloud-CLI

  1. Aktualisieren Sie Ihre gcloud CLI, um die neuesten Features zu erhalten:

    gcloud components update beta
    
  2. Verwenden Sie den folgenden Befehl, um den Emulator zu starten:

    gcloud beta emulators bigtable start
    

    Wenn der Emulator noch nicht installiert ist, werden Sie zum Herunterladen und zur Installation des ausführbaren Programms weitergeleitet.

    Der Emulator gibt den Host und die Portnummer aus, wenn er ausgeführt wird.

    Standardmäßig wählt der Emulator localhost:8086 aus. Binden Sie den Emulator mit dem optionalen Flag --host-port an einen bestimmten Host und Port. Ersetzen Sie dabei HOST und PORT:

    gcloud beta emulators bigtable start --host-port=HOST:PORT
    

    Hier ein Beispiel:

    gcloud beta emulators bigtable start --host-port=localhost:8086
    
  3. Geben Sie Control-C ein, um den Emulator anzuhalten.

Docker

  1. Prüfen Sie, ob Docker auf Ihrem System installiert und im Systempfad verfügbar ist.

  2. Starten Sie den Emulator:

    docker run -p 127.0.0.1:8086:8086 --rm -ti google/cloud-sdk gcloud beta emulators bigtable start --host-port=0.0.0.0:8086
    

    Der Befehl führt den Emulator aus und ordnet die Ports im Container den entsprechenden Ports auf Ihrem lokalen Host zu.

Sie können den Emulator auch als Teil der vorhandenen Docker Compose-Konfigurationsdatei (.yaml) verwenden. Weitere Informationen zu Docker Compose finden Sie in der Übersicht zu Docker Compose.

Clientbibliotheken mit dem Emulator verwenden

Legen Sie die Umgebungsvariable BIGTABLE_EMULATOR_HOST so fest, dass die Clientbibliotheken mit dem Emulator verwendet werden:

Linux/MacOS

  export BIGTABLE_EMULATOR_HOST=localhost:8086

Windows

  set BIGTABLE_EMULATOR_HOST=localhost:8086

Wenn Ihre Anwendung gestartet wird, sucht die Clientbibliothek automatisch nach BIGTABLE_EMULATOR_HOST und stellt eine Verbindung zum Emulator her, wenn sie ausgeführt wird.

Wenn BIGTABLE_EMULATOR_HOST festgelegt ist, können Sie den Emulator testen, indem Sie den „Hello World“-Beispielen folgen.

Um den Emulator zu beenden, geben Sie Strg + C ein und heben Sie die Festlegung von BIGTABLE_EMULATOR_HOST mit dem folgenden Befehl auf:

    unset BIGTABLE_EMULATOR_HOST

Java-Wrapper für den Emulator

Der Java-Wrapper enthält den integrierten Bigtable-Emulator und bietet eine Java-Schnittstelle zum Schreiben von Tests.

Weitere Informationen zur Verwendung des Java-Wrappers finden Sie im GitHub-Repository.

Die folgende Dokumentation enthält weitere Informationen zu den Java-Paketen des Emulators:

Filter

Der Emulator unterstützt alle Filter mit Ausnahme des Begrenzungsfilters Sink.

Probleme mit dem Bigtable-Emulator werden im GitHub-Repository google-cloud-go erfasst. Dort können Sie Fehlerberichte und Funktionsanfragen einreichen oder vorhandene Probleme kommentieren.