Azure DB連携

Azure App ServiceからCosmos DBデータベースにアクセスしてみた

Cosmos DBデータベースにアクセスする処理として、Azure Cosmos DB Spring Boot Starterという便利なライブラリがある。今回は、Azure App ServiceからCosmos DBデータベースにアクセスしてみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

Azure App ServiceからAzure FunctionsにPost送信してみた(ソースコード編)今回も引き続き、Azure App ServiceからPost通信によってAzure Functionsを呼び出す処理の実装について述べ...

また、下記記事のCosmos DBデータベースの作成が完了していること。

Azure Potal上でCosmos DBデータベースを作成してみたAzure Cosmos DBとは、最新のアプリ開発に対応するフル マネージドの NoSQL データベースで、Azure Portal上...

サンプルプログラムの作成

作成したサンプルプログラム(App Service側)の構成は以下の通り。なお、Azure Functions側のソースコードは修正していない。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから追加・変更したプログラムである。

pom.xmlの内容は以下の通りで、Azure Cosmos DBに接続するためのAzure Cosmos DB Spring Boot Starterを追加している。

application.propertiesの内容は以下の通りで、Azure Cosmos DBの接続先を設定している。

なお、上記のURIとキーは、以下の画面のURIとプライマリキーから取得している。
CosmosDB_Key

また、上記のデータベース名と後述のコンテナ名は、以下のデータ エクスプローラー画面から取得している。
CosmosDB_Database



また、UserDataクラスの内容は以下の通りで、コレクションにコンテナ名を指定している。

さらに、Cosmos DBのユーザーデータテーブルを操作するリポジトリの内容は以下の通りで、Cosmos DBにアクセスするためのReactiveCosmosRepositoryインタフェースを継承し、検索に必要なメソッドをいくつか追加している。

また、コントローラクラスの内容は以下の通りで、searchメソッド内で前述のリポジトリを呼び出している。

さらに、HTMLファイルの内容は以下の通り。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/azure/tree/master/azure-app-service-to-cosmos-db/demoAzureApp



サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1)「mvn azure-webapp:deploy」コマンドによって、Azure App Service上にサンプルプログラムをデプロイする。
サンプルプログラムの実行結果_1

なお、Azure App Serviceにデプロイする過程は、以下の記事の「App ServiceへのSpring Bootを利用したJavaアプリケーションのデプロイ」を参照のこと。

Azure App Service上でSpring Bootを利用したJavaアプリケーションを作成してみた前回は、Azure Potal上でApp Serviceを作成してみたが、今回は、前回作成したApp ServiceにSpring Bo...

2) Azure App ServiceのURL「https://azureappdemoservice.azurewebsites.net/」とアクセスした場合の実行結果は、以下の通り。
サンプルプログラムの実行結果_2_1

なお、上記URLは、下記Azure App ServiceのURLから確認できる。
サンプルプログラムの実行結果_2_2

3) 名前、性別を指定せず「検索」ボタンを押下すると、以下のように、登録データが全て表示される。
サンプルプログラムの実行結果_3

4) 性別を指定し「検索」ボタンを押下すると、以下のように、指定した性別のデータが表示される。
サンプルプログラムの実行結果_4

5) 名前、性別を指定し「検索」ボタンを押下すると、以下のように、指定した名前、性別のデータが表示される。
サンプルプログラムの実行結果_5

要点まとめ

  • Cosmos DBデータベースにアクセスする処理は、Azure Cosmos DB Spring Boot Starterというライブラリを利用すると便利である。