エミュレータを使用してテストする

Google Cloud CLI には、アプリケーションのテストに使用できる Bigtable 用のローカル インメモリ エミュレータが用意されています。エミュレータはメモリ内にのみデータを保存するため、終了時にデータは失われます。これは、本番環境で使用するものではありませんが、Bigtable を使用してローカルで開発とテストを行う場合に役立ちます。

エミュレータは、すべての Cloud Bigtable クライアント ライブラリで使用できます。

エミュレータでは、インスタンスとクラスタを作成や管理する管理 API は提供されません。エミュレータ起動後、プロジェクトとインスタンス名を使用して接続し、テーブルを作成してデータの読み取りまたは書き込みを行えます。エミュレータは、安全な接続をサポートしていません。

エミュレータをインストールして実行する

エミュレータを実行する最も一般的な方法は、gcloud CLI を使用する方法と Docker を使用する方法です。実際のアプリケーション開発とテスト ワークフローに適した方法を選択してください。

認証を設定する

Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。ログイン後、 初期化するには、次のコマンドを実行して Google Cloud CLI を初期化します。

gcloud init

gcloud CLI

  1. gcloud CLI インストールを更新して、最新の機能を取得します。

    gcloud components update beta
    
  2. 次のコマンドを実行して、エミュレータを起動します。

    gcloud beta emulators bigtable start
    

    エミュレータがまだインストールされていない場合、エミュレータ用のバイナリをダウンロードしてインストールするように求められます。

    エミュレータによって、実行中のホストとポート番号が表示されます。

    デフォルトでは、エミュレータは localhost:8086 を選択します。エミュレータを特定のホストとポートにバインドするには、オプションの --host-port フラグを使用し、HOSTPORT を置き換えます。

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

    次に例を示します。

    gcloud beta emulators bigtable start --host-port=localhost:8086
    
  3. Ctrl+C キーを押してエミュレータを停止します。

Docker

  1. Docker がシステムにインストールされ、システムパスで使用可能であることを確認してください。

  2. 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 リポジトリで追跡されます。このリポジトリでは、バグレポートや機能リクエストの提出、既存の問題へのコメントの投稿ができます。