本文へジャンプ

Azure Functions 連携ガイド

Revision: 2.5.0-13372-ad2ab4f6

1 はじめに

1.1 本書の構成

本書では、GridDB CloudとAzure Functionsを組み合わせた使い方を説明します。各章の内容は次のとおりです。

  • はじめに
    本書の構成及び用語について説明します。

  • Azure Functionsについて
    Azure Functionsについて説明します。

  • サンプルプログラムについて
    GridDB Cloudに対し、コンテナ作成やデータ登録を行うサンプルプログラムを紹介します。

  • サンプルプログラムの実行
    サンプルプログラムのビルドおよび実行方法の例を紹介します。

  • 登録データの確認
    サンプルプログラムで登録したデータをSQLで確認する方法を紹介します。

1.2 用語の説明

本書で用いられる用語の説明です。

用語 意味
運用管理GUI GridDB Cloudを管理するWebアプリケーションです。
クラスタ 一体となってデータ管理を行う、1つ、もしくは複数のノードの集合を指します。
ノード GridDBでデータ管理を行うひとつのサーバプロセスを指します。
コンテナ ロウの集合を管理する入れ物です。コレクションと時系列コンテナの2種類が存在します。
コレクション 一般の型のキーを持つロウを管理するコンテナの一種です。
ロウ GridDBで管理する1件分のデータを指します。

2 Azure Functionsについて

2.1 概要

Azure Functionsとは、ユーザが作成したコードをAzure上で実行する為のAzureが提供するサービスです。
ユーザがサーバを構築、保守する必要がない為、アプリケーション開発に集中できるといったメリットがあります。

GridDB CloudとAzure Functionsを組み合わせることで、GridDBにデータを登録したり、GridDBからデータを取得したりするアプリケーションを作成可能です。

なお、Azure Functionsの詳細については、Azureの公式ドキュメントを参照してください。

2.2 必要となるリソース等

GridDB CloudでAzure Functionsを使用する場合、以下のリソース、設定が必要となります。
なお、本書では各リソースの準備作業は、割愛させていただきます。

  1. Azureアカウント
    MicrosoftのAzure公式ホームページから作成してください。
  2. Azure Virtual Network(VNet)
    Azureアカウント作成後、Azure Portalの[仮想ネットワーク]画面から作成してください。
  3. Virtual Networkピアリング(ピアリング接続)
    『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)を参照いただき、運用管理GUIで設定を実施してください。
  4. 関数アプリ
    Azureアカウント作成後、Azure Portalの[関数アプリ]画面から作成してください。
    作成時に関数アプリのプランを指定する項目が存在します。
    VNet統合により、仮想ネットワーク上のリソースと通信させる為、以下のいずれかのプランを選択してください。
    • App Serviceプラン(S1以上)
    • Functions Premium(EP1以上)
  5. VNet統合設定
    関数アプリ作成後、Azure Portalの[関数アプリ]画面 > 作成された関数アプリの[ネットワーク]メニュー > [VNet統合]で設定してください。
    統合先のVNetについては、ご用意いただいたVNetを指定してください。

3 サンプルプログラムについて

3.1 概要

『GridDB ドキュメンテーション』ページ(document.html)で紹介しております通り、Java(GridDB_Java_API_Reference.html)やC言語(GridDB_C_API_Reference.html)等といった様々な言語のクライアントAPIをGridDBではサポートしています。

サンプルプログラムでは、そのうちJava APIを使用して処理を実施します。
処理の流れについては、以下の通りです。

  1. 接続パラメータの設定
  2. 接続用インスタンスの作成
  3. 接続し、コレクション(コンテナ名:point01)を作成
  4. ロウを登録
  5. 登録処理の実行結果をHTTPパラメータで返却

また、サンプルプログラムのビルドやデプロイはVisual Studio Code(VSCode)を使用します。

3.2 実行環境

サンプルプログラムの実行環境は以下の通りです。
サンプルプログラムを実行する端末へ事前に導入してください。

  • Visual Studio Code(VSCode)
    • 拡張機能:Azure Functions
    • 拡張機能:Java Extension Pack
  • Apache Maven 3
  • Open JDK 8
  • Azure CLI

4 サンプルプログラムの実行

サンプルプログラムを用いて、Azure FunctionsからGridDB Cloudへデータを登録する方法について説明します。

4.1 サンプルプログラムの配置

サンプルプログラムを解凍し、端末上へ配置します。
なお、サンプルプログラムの中身はMavenプロジェクトとなっていますので、解凍したフォルダーごと取り込んで編集可能です。

gdbConnectSample.zipを任意のディレクトリへ保存し、解凍してください。

VSCodeを起動し、画面上部のメニューの[ファイル]から[フォルダを開く]を選択してください。

解凍した「gdbConnectSample」フォルダーを選択し、[フォルダーの選択]を押下してください。

ファイルの信頼を確認する画面が表示されますので、[はい、作成者を信頼します]を押下してください。

サンプルプログラムのファイルがVSCode上に表示されることを確認してください。

VSCode画面上部のメニューの[ターミナル]から[新しいターミナル]を選択してください。

起動したターミナル上で以下のコマンドを実行し、依存ライブラリを取得してください。

mvn dependency:copy-dependencies

依存ライブラリの取得が正常に完了されれば、サンプルプログラムの配置が完了となります。

4.2 接続情報の設定

サンプルプログラムのソースコードへ接続情報を設定します。

VSCode上に表示されたサンプルプログラムから、src > main > java > com > function下に保存されているFunction.javaを開いてください。

Function.javaの44~48行目に定義されている変数へ接続情報を設定してください。

変数名 内容
url プロバイダファイルのURL
cls クラスタ名
dbn データベース名
usr 接続ユーザ名
pas 接続ユーザパスワード

各内容の詳細は以下を参照してください。

  1. プロバイダファイルのURL
    ”接続情報が定義されたプロバイダファイルの保存先URL”を設定します。
    運用管理GUIログイン後、[Clusters]画面[OVERVIEW]タブの[Notification Provider URL]項目で確認が可能です。
    詳細は『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.2 クラスタ概要機能」を参照してください。

  2. クラスタ名
    ”サンプルプログラムの接続先となるクラスタ名”を設定します。
    運用管理GUIログイン後、[Clusters]画面[OVERVIEW]タブの[Cluster Name]項目で確認が可能です。
    詳細は『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.2 クラスタ概要機能」を参照してください。

  3. データベース名
    ”サンプルプログラムの接続先となるデータベース名”を設定します。
    データベースが作成されていない場合は、運用管理GUIログイン後、[Clusters]画面[DATABASES]タブから作成が可能です。
    詳細は『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.4.3 データベースの作成」を参照してください。

  4. 接続ユーザ名
    ”サンプルプログラムの接続時に使用するユーザ名”を設定します。
    ユーザが作成されていない場合は、運用管理GUIログイン後、[GridDB Users]画面から作成が可能です。
    詳細は『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.14.3 データベースユーザの作成」を参照してください。

  5. 接続ユーザパスワード
    ”サンプルプログラムの接続時に使用するユーザパスワード”を設定します。
    ユーザが作成されていない場合は、運用管理GUIログイン後、[GridDB Users]画面から作成が可能です。
    詳細は『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.14.3 データベースユーザの作成」を参照してください。

設定後はキーボードの「Ctrl+S」を押下し、Function.javaを上書き保存してください。

4.3 Azureへのサインイン

サンプルプログラムをAzureへデプロイする為、VSCode上でAzureにサインインします。

VSCode画面左側のメニューの[Azure]を選択してください。

[Sign in to Azure…]を押下し、事前に準備いただいたAzureアカウントでサインインしてください。

なお、以下の画面が表示された場合は、画面上の指示に従い、デバイスコードを利用したサインインを実施してください。

4.4 サンプルプログラムのビルド

サンプルプログラムをビルドします。

VSCode画面左側のメニューの[Azure]を選択してください。

[Local Project gdbConnectSample]を押下し、展開されたメニューから[Functions Read-only]を押下してください。

[Run build task to update this list]を押下し、サンプルプログラムをビルドしてください。

起動したターミナルへ以下のメッセージが表示されることを確認してください。

[INFO] -----------------------
[INFO] BUILD SUCCESS
[INFO] -----------------------

4.5 サンプルプログラムのデプロイ

サンプルプログラムをAzure上へデプロイします。

VSCode画面左側のメニューの[Azure]を選択してください。

[FUNCTIONS]メニュー内のマークを押下してください。

画面上部のウィンドウにデプロイ先となるサブスクリプションが表示されますので、適宜選択してください。

サブスクリプションの選択後、サンプルプログラムのデプロイ先となる関数アプリが表示されますので、適宜選択してください。選択後、デプロイ処理が実行されますので、処理が完了するまで待機してください。

以下のメッセージが表示されれば、デプロイが完了となります。
なお、<関数アプリ名>には、サンプルプログラムをデプロイした関数アプリの名前が入ります。

Deployment to "<関数アプリ名>" completed.

4.6 サンプルプログラム実行

Azureへデプロイしたサンプルプログラムを実行します。

Webブラウザを起動し、バーへ以下のURLを入力してください。
なお、<関数アプリ名>には、サンプルプログラムをデプロイした関数アプリの名前を適宜設定してください。

https://<関数アプリ名>.azurewebsites.net/api/gdbConnect?id=point01&temperature=12.345&humidity=54.321

Webブラウザ上に以下のメッセージが表示されれば、サンプルプログラムの実行が成功となります。

The data has been registered.

5 登録データの確認

サンプルプログラムを実行し、登録されたデータをSQLで確認します。

運用管理GUIへログインしてください。
なお、ログイン手順が不明な場合、『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.1.2 ログイン」を参照してください。

[Query]画面を開き、以下のSQLを実行してください。

SELECT * FROM point01;

SQL実行結果として、データが表示されれば、登録データの確認が完了となります。

サンプルプログラムの実行については、以上になります。

なお、サンプルプログラムの実行で作成されたコンテナや関数アプリは必要に応じて、適宜削除・破棄してください。

本書では削除・破棄の手順の詳細は割愛させていただきます。

  1. Virtual Networkピアリング(ピアリング接続) の削除
    GridDB Cloudサポートデスクへお問い合わせください。

  2. VNet統合設定の削除
    Azure Portalの[関数アプリ]画面 > 作成された関数アプリの[ネットワーク]メニュー > [VNet統合]から作業を実施してください。
    詳細は、Azure公式のドキュメントを参照してください。

  3. Azureリソース(VNetや関数アプリ等)
    Virtual Networkピアリング(ピアリング接続) とVNet統合設定の削除後、削除作業を実施してください。
    各リソースの削除手順については、Azure公式のドキュメントを参照してください。

  4. データベースの削除
    『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.4.5 データベースの削除」を参照してください。

  5. コンテナの削除
    『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.5.4 コンテナの削除」を参照してください。

  6. 接続ユーザの削除
    『GridDB Cloud 運用管理GUIリファレンス』(GridDB_Cloud_ManagementGui_Reference.html)の「4.14.5 データベースユーザの削除」を参照してください。