エミュレータを使用してテストする
Google Cloud CLI には、アプリケーションのテストに使用できる Bigtable 用のローカル インメモリ エミュレータが用意されています。エミュレータはメモリ内にのみデータを保存するため、終了時にデータは失われます。これは、本番環境で使用するものではありませんが、Bigtable を使用してローカルで開発とテストを行う場合に役立ちます。
エミュレータは、すべての Cloud Bigtable クライアント ライブラリで使用できます。
エミュレータでは、インスタンスとクラスタを作成や管理する管理 API は提供されません。エミュレータ起動後、プロジェクトとインスタンス名を使用して接続し、テーブルを作成してデータの読み取りまたは書き込みを行えます。エミュレータは、安全な接続をサポートしていません。
エミュレータをインストールして実行する
エミュレータを実行する最も一般的な方法は、gcloud CLI を使用する方法と Docker を使用する方法です。実際のアプリケーション開発とテスト ワークフローに適した方法を選択してください。
認証を設定する
Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。ログイン後、 初期化するには、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud initgcloud CLI
gcloud CLI インストールを更新して、最新の機能を取得します。
gcloud components update beta次のコマンドを実行して、エミュレータを起動します。
gcloud beta emulators bigtable startエミュレータがまだインストールされていない場合、エミュレータ用のバイナリをダウンロードしてインストールするように求められます。
エミュレータによって、実行中のホストとポート番号が表示されます。
デフォルトでは、エミュレータは
localhost:8086を選択します。エミュレータを特定のホストとポートにバインドするには、オプションの--host-portフラグを使用し、HOST と PORT を置き換えます。gcloud beta emulators bigtable start --host-port=HOST:PORT次に例を示します。
gcloud beta emulators bigtable start --host-port=localhost:8086Ctrl+C キーを押してエミュレータを停止します。
Docker
Docker がシステムにインストールされ、システムパスで使用可能であることを確認してください。
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このコマンドはエミュレータを実行し、コンテナ内のポートをローカルホスト上の同じポートにマッピングします。
既存の Docker Compose 構成(.yaml)ファイルの一部としてエミュレータを使用することもできます。Docker Compose の詳細については、Docker Compose の概要をご覧ください。
エミュレータでクライアント ライブラリを使用する
エミュレータでクライアント ライブラリを使用するように BIGTABLE_EMULATOR_HOST 環境変数を設定します。
Linux / macOS
export BIGTABLE_EMULATOR_HOST=localhost:8086
Windows
set BIGTABLE_EMULATOR_HOST=localhost:8086
アプリケーションが起動すると、クライアント ライブラリは自動的に BIGTABLE_EMULATOR_HOST をチェックし、エミュレータが実行されている場合は接続します。
BIGTABLE_EMULATOR_HOST を設定したら、Hello World のサンプルでエミュレータをテストできます。
エミュレータを停止するには、Control-C と入力し、次のコマンドで BIGTABLE_EMULATOR_HOST の設定を解除します。
unset BIGTABLE_EMULATOR_HOST
エミュレータ向け Java ラッパー
Java ラッパーは、組み込みの Bigtable エミュレータをバンドルし、テストを作成するための Java インターフェースを備えています。
Java ラッパーの使用方法について詳しくは、GitHub リポジトリをご覧ください。
エミュレータの Java パッケージの詳細については、次のドキュメントをご覧ください。
フィルタ
エミュレータは、Sink 制限フィルタを除くすべてのフィルタをサポートしています。
Bigtable エミュレータに関連する問題は、google-cloud-go GitHub リポジトリで追跡されます。このリポジトリでは、バグレポートや機能リクエストの提出、既存の問題へのコメントの投稿ができます。