2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GCP Cloud Spanner をローカル環境で動かすための手順

Posted at

ゴール

  • Cloud Spanerをローカル環境で立ち上て操作する

前提

準備

gcloudツールの設定にCloud Spannerエミュレータ用の設定を追加する.

gcloud config configurations create emulator
gcloud config set project test-project
gcloud config set auth/disable_credentials true
gcloud config set api_endpoint_overrides/spanner http://localhost:9020/

Cloud Spanner エミュレータサーバーの初期化

エミュレータサーバーの起動

gcloudツールからエミュレータを立ち上げる(別タブでの実行を推奨)
※ DockerDesctopの起動が必要です.

gcloud emulators spanner start

以下の表示がされれば起動に成功しています.

[cloud-spanner-emulator] 2022/09/18 15:26:06 gateway.go:140: Cloud Spanner emulator running.
[cloud-spanner-emulator] 2022/09/18 15:26:06 gateway.go:141: REST server listening at 0.0.0.0:9020
[cloud-spanner-emulator] 2022/09/18 15:26:06 gateway.go:142: gRPC server listening at 0.0.0.0:9010

この時点でサーバーは起動しているもののインスタンスとデータベースはまだ作成されていません.

インスタンスの作成

以下のコマンドでインスタンスを作成します.
(例では test-instance という名前で作られます)

gcloud spanner instances create test-instance \
         --config=emulator-config --description="Test Instance" --nodes=1

データベースの作成

gcloudツールを使う場合は以下のようなコマンドを入力します.
作成時にDDLを適用するなどの詳細な使い方は公式のデータベースの作成に紹介されています.

gcloud spanner databases create your-database-name --instance=test-instance

エミュレータサーバーへの手動アクセス

spanner-cliを利用する

mysqlなどの一般的なcliライクで接続したい場合はspanner-cliを使うことを検討するかもしれません.
初期化プロセスで設定したインスタンス名とデータベース名を読み替えて以下のコマンドでアクセスできます.

spanner-cli -p test-project -i test-instance -d test-database

IntelliJ IDEAと統合する

データベースを開く

e1be7ce0-e3ad-f4bc-cdbf-65643986ec59.png

設定の追加をクリック

7e807dfd-065f-17ae-b404-f992207da82e.png

データソース → その他 → Google Cloud Spanner を選択

06841646-231f-221e-1720-ac39aaa8e78b.png

↓の赤字を修正. URLの末尾に ?autoConfigEmulator=true を追記して,接続のテストがパスすることを確認する.
※ プロジェクト〜データベース名は自分の環境に合わせて修正すること.

464e65bd-fdbf-e8d8-b984-0997dcdfdc48.png

アプリケーションとエミュレータサーバーの接続

GCPのCloud Spannerライブラリにはアプリ起動時にエミュレータ用の環境変数を読み込む処理があります.
その環境変数が設定されている場合,通常のエンドポイントではなく環境変数先のエンドポイントに接続が切り替わります.

以下の環境変数が設定された環境でアプリを起動するとエミュレータサーバーに接続されます.

export SPANNER_EMULATOR_HOST=localhost:9010

以上となります.
お読みいただきありがとうございました.

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?