Azure Cosmos DB EmulatorをJavaで操作する(準備編)

2記事に分けて、Java(Spring Boot)からAzure Cosmos DB Emulatorを操作する手順をまとめます 。
今回はJava側からEmulatorに接続するための準備段階の手順についてまとめていきます。

Azure Cosmos DB Emulatorのダウンロード

以下のサイトからダウンロード
https://docs.microsoft.com/ja-jp/azure/cosmos-db/local-emulator?tabs=ssl-netstd21

インストールが完了したら、スタートメニューからエミュレータを起動する。

スタートメニュー

エミュレータの起動が完了すると自動で以下のようなページがブラウザに表示される。
(起動する日はすぐに起動するが、起動しない日はずっと待っていても起動しない・・・)

エミュレータ初期画面

上記の画面に表示されている接続先情報は、Javaからエミュレータに接続する際に使用する。


データベース・コンテナの作成

データベースの作成

左側メニューの「Explorer」を選択し、「New Database」を押下する。
画面右側に作成するデータベースの設定入力欄が表示されるので、記述して「OK」ボタンを押下する。

データベース作成

正常に作成が完了すると画面左側「SQL API」の下に作成したデータベースが追加される。

コンテナの作成

左側メニューの「Explorer」を選択し、「New Container」を押下する。
画面右側に作成するコンテナの設定入力欄が表示されるので、記述して「OK」ボタンを押下する。

コンテナ作成


証明書のインポート

Java側からエミュレータに接続できるようにするためには、Java証明書ストアに証明書をインポートする必要がある。

まずはじめに、以下のページを参考に証明書をエクスポートする。
エクスポート先のパスがこの後の操作で必要となるので把握しておくこと。

https://docs.microsoft.com/ja-jp/azure/cosmos-db/local-emulator-export-ssl-certificates#export-emulator-certificate

JAVA_HOMEに設定しているJavaの「cacerts」ファイルのあるディレクトリで、コマンドプロンプトを起動する。
%JAVA_HOME%/jre/lib/security%JAVA_HOME%/lib/securityあたり)

起動したコマンドプロンプトで証明書をインポートするコマンドを実行する。参考

keytool -import -alias cacerts -keystore cacerts -file 証明書のパス

「キーストアのパスワードを入力してください」と表示されるので「changeit」と入力してEnterを押下する。
「この証明書を信頼しますか」と表示されるので「y」と入力してEnterを押下する。

コマンド実行例

Javaからエミュレータに接続できなくなった場合はこの操作を再度実行する。


Javaでの実装について、以下の記事を書きました。

olafnosuke.hatenablog.com