Mit dem Emulator testen
Die Google Cloud CLI stellt einen lokalen Emulator im Speicher für Bigtable zur Verfügung. Mit ihm können Sie Ihre Anwendung testen. Da der Emulator die Daten nur zwischenspeichert, behält er keine Daten über die verschiedenen Testläufe bei. 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 zwei gängigsten Methoden zum Ausführen des Emulators sind die gcloud-Befehlszeile und Docker. Wählen Sie die für Ihre Anwendungsentwicklung und Ihren Workflow geeignete Methode aus.
Authentifizierung einrichten
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
gcloud-CLI
Aktualisieren Sie die Installation der gcloud CLI, um die neuesten Funktionen zu erhalten:
gcloud components update beta
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
Geben Sie Control-C ein, um den Emulator anzuhalten.
Docker
Prüfen Sie, ob Docker auf Ihrem System installiert und im Systempfad verfügbar ist.
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 Ihrer vorhandenen Docker Compose-Konfigurationsdatei (.yaml
) verwenden.
Weitere Informationen zu Docker Compose finden Sie unter Docker Compose Overview.
Clientbibliotheken mit dem Emulator verwenden
Legen Sie die Umgebungsvariable BIGTABLE_EMULATOR_HOST
fest, um die Clientbibliotheken mit dem Emulator zu verwenden:
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. Folgen Sie dazu den Hello World-Beispielen.
Um den Emulator zu beenden, drücken Sie Strg + C. Deaktivieren Sie anschließend BIGTABLE_EMULATOR_HOST
mit dem folgenden Befehl:
unset BIGTABLE_EMULATOR_HOST
Java-Wrapper für den Emulator
Der Java-Wrapper bündelt 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.
Weitere Informationen zu den Emulator-Java-Paketen finden Sie in der folgenden Dokumentation:
Filter
Der Emulator unterstützt alle Filter mit Ausnahme des Sink
-Begrenzungsfilters.
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.