エミュレータを使用してテストする
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
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:8086
Ctrl+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 リポジトリで追跡されます。このリポジトリでは、バグレポートや機能リクエストの提出、既存の問題へのコメントの投稿ができます。