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

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

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

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

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

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

認証の設定

このページの gcloud CLI のサンプルは、次のいずれかの開発環境から使用できます。

  • Cloud Shell: gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。

    このページの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。

  • ローカルシェル: ローカル開発環境で gcloud CLI を使用するには、gcloud CLI をインストールして初期化してください。

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