1.1.3.9. Things Cloudの拡張機能(microservice)を開発する

本項では、本システムの実装において必要なThings Cloudの拡張機能であるmicroserviceの開発手順を説明します。

なお、本書中の設定値の「< >」の表記については、ご利用の環境により各自入力いただく箇所となります("<"から">"までを設定値に置き換えてください)。

注釈

  • 本項では、標準提供されていない「microservice」機能を利用しています。
    「microservice」のご利用にあたっては、提供環境や費用などの諸条件について個別対応とさせていただいております。
    「microservice」機能に関しては iot-app@ntt.com までご相談ください。
    案件相談、提供環境や費用などの諸条件に関しては iot-info@ntt.com までご相談ください。

microservice用にThings Cloudのユーザーを作成する

microserviceからThings Cloudに保存された計測データを読み込むため、Things Cloudにてmicroservice用のユーザーを作成します。

  1. 以下のURLにアクセスし、Things Cloudにログインします。

    • URL: https://<Things Cloudのテナント名>.je1.thingscloud.ntt.com/
  2. 画面右上の[アプリケーション選択]ボタン(■が9つ並んだボタン)をクリックし、[管理]を選択します。

    IoT機器用ユーザー作成 - 管理
  3. 画面左のメニューより、[アカウント] > [ユーザー]を選択します。

    IoT機器用ユーザー作成 - ユーザー
  4. 画面右上の[ユーザーを追加]をクリックします。

    IoT機器用ユーザー作成 - ユーザーを追加
  5. 表示された「新しいユーザー」画面にて、以下の情報を入力・選択し、[保存]をクリックします。

    • 識別情報
      • ユーザー名: <任意のmicroservice用ユーザー名>

      • ステータス: 有効

      • ログイン エイリアス: <任意のログインエイリアス>

      • Eメール: <Things Cloudのパスワードをリセットするためのメールを受け取る際のメールアドレス>

      • 名: <任意の名>

      • 姓: <任意の姓>

      • 電話番号: <任意の電話番号>

      • ログインオプション
        • 次回ログイン時にパスワードリセットを強制する: Off
        • パスワードリセットのリンクをEメールで送信: Off
      • パスワード: <任意のパスワード>

      • パスワードの確認: <上記で設定したパスワードを再入力>

    • グローバルロール
      • [グローバル リーダー]のみチェックを入れる
    IoT機器用ユーザー作成 - 新しいユーザー
  6. 「ユーザーが保存されました」と表示され、ユーザーリスト中に作成したユーザーが表示されていることを確認します。

  7. 現在のアカウントからログアウトし、新しく作成したアカウントでThings Cloudにログインできることを確認します。

    • URL: https://<Things Cloudのテナント名>.je1.thingscloud.ntt.com/
    IoT機器用ユーザー作成 - Things Cloudログイン
  8. 以降の手順にて「ユーザー名」および「パスワード」が必要となるので、控えてください。

Things Cloudの認証情報を作成する

本項で実装するmicroserviceの処理内で、Things Cloudへアクセスする際に使用する認証情報を作成する手順です。

  1. 作業端末において、任意のエディタにて入力用の一時的なファイル(例:C:\input.txt)を作成し、以下を記述します。

    <Things CloudのテナントID>/<microservice用ユーザーのユーザー名>:<microservice用ユーザーのパスワード>
    

    注釈

  2. コマンドプロンプトにて以下のコマンドを、上記で作成したファイル名とエンコード結果を格納する一時的なファイル(例:C:\output.txt)を指定して実行します。

    > certutil -encode <入力用ファイル名> <出力用ファイル名>
    
    ()
    > certutil -encode C:\\input.txt C:\\output.txt
    
  3. コマンドプロンプトに以下のメッセージが表示されることを確認します。

    入力長 = XX(任意の値)
    出力長 = XXX(同上)
    CertUtil: -encode コマンドは正常に完了しました。
    
  4. 出力用ファイルを開きます。 "-----BEGIN CERTIFICATE-----"と"-----END CERTIFICATE-----"で囲まれた文字列が「Things Cloudの認証情報」です。

microserviceの動作を確認する

本項で実装するmicroserviceの動作を説明します。

本項では、下記の動作をするmicroserviceを実装します。

  • Things Cloudにアクセスし、実行日の前日分の計測データを取得
  • 取得した計測データをCSVファイル化し、Wasabiオブジェクトストレージにアップロード
  • 計測データを取得・CSVファイル化しWasabiオブジェクトストレージにアップロードするまでの処理を1日1回定時に実行
  • API呼び出しされた際に、Berryサーバーの推論APIを実行し結果をAPI実行元にレスポンス

動作イメージ

実装するmicroserviceの動作イメージは以下の図のとおりです。

  • 動作①

    microserviceの動作イメージ - 動作イメージ①
  • 動作②

    microserviceの動作イメージ - 動作イメージ②

[作業端末]microserviceを作成する

作業端末にて、Things Cloudにデプロイするmicroserviceを作成する手順です。

あらかじめ、「1.1.3.1. 作業端末の事前設定をする - microserviceの作成準備をする」での事前準備がすべて完了していることをご確認ください。

以下の手順で作成するファイルについては「1.1.3.11. カスタムウィジェット・microserviceコード例を確認する - microservice用コードを確認する」にサンプルを掲載しておりますので、併せてご参照ください。

注釈

  • 本項では、標準提供されていない「microservice」機能を利用しています。
    「microservice」のご利用にあたっては、提供環境や費用などの諸条件について個別対応とさせていただいております。
    「microservice」機能に関しては iot-app@ntt.com までご相談ください。
    案件相談、提供環境や費用などの諸条件に関しては iot-info@ntt.com までご相談ください。
  • 本項では例として、開発用ディレクトリを「C:\tmp\microservice」としています。お使いの環境に合わせて読み替えてください。

microserviceを開発する

  1. 1.1.3.11. カスタムウィジェット・microserviceコード例を確認する - microservice用コードを確認する」を参考に、開発用ディレクトリ内に以下のファイルを作成します。

    注釈

ライブラリのインストール・コンパイルをする

  1. 作業端末にてコマンドプロンプトを起動し、以下のコマンドを実行して開発用ディレクトリに移動します。

    > cd C:\tmp\microservice
    
  2. 開発用ディレクトリにてコマンドプロンプトを起動し、以下のコマンドを実行して必要なライブラリをインストールします。

    > npm install
    
  3. 開発用ディレクトリを確認し、以下のディレクトリ・ファイルが保存されていることを確認します。

    • node_modules
    • package-lock.json
  4. 以下のコマンドを実行し、TypescriptファイルをJavascriptファイルにコンパイルします。

    > tsc -p .
    
  5. 開発用ディレクトリを確認し、以下のファイルが保存されていることを確認します。

    • app.js
    • app.js.map
    • package-lock.json
    • routes.js
    • routes.js.map
    • createCSV.js
    • createCSV.js.map
    • wasabi.js
    • wasabi.js.map
    • Create_Predictiondata.js
    • Create_Predictiondata.js.map

Docker imageを作成する

  1. 1.1.3.11. カスタムウィジェット・microserviceコード例を確認する - microservice用コードを確認する」を参考に、開発用ディレクトリ内にファイル「Dockerfile」を作成します。

  2. 作業端末にてコマンドプロンプトを起動し、以下のコマンドを実行して開発用ディレクトリに移動します。

    > cd C:\tmp\microservice
    
  3. 以下のコマンドを実行し、Docker image「prediction-result-img」を構築します。

    > docker build -t prediction-result-img .
    

    注釈

    • 「error during connect: This error may indicate that the docker daemon is not running.」と表示され、処理が完了しなかった場合はDockerが起動していないと推測されます。
      あらかじめインストールしたDocker Desktopを起動しコマンドを再実行してください。
  4. 以下のコマンドを実行し、Docker image「prediction-result-img」をtarアーカイブ「image.tar」として保存します。

    > docker save -o image.tar prediction-result-img
    
  5. 作業端末のエクスプローラーより開発用ディレクトリを開き、「image.tar」が存在することを確認します。

アプリケーションを作成する

  1. 1.1.3.11. カスタムウィジェット・microserviceコード例を確認する - microservice用コードを確認する」を参考に、開発用ディレクトリ内にマニフェストファイル「cumulocity.json」を作成します。

  2. 作業端末のエクスプローラーより開発用ディレクトリを開き、以下の2ファイルを選択して右クリック>[送る]>[圧縮(zip形式)フォルダー]をクリックします。

    • cumulocity.json
    • image.tar
    アプリケーションのデプロイ - 管理
  3. 開発用ディレクトリ内に圧縮したZipファイルが存在することを確認します。

  4. Zipファイルのファイル名を「prediction-ms.zip」に変更します。