ステップで簡単なIoTマイクロサービスを構築する(2)


全体構造
この章ではシステムのために簡単な先端インターフェースを作成します.まず環境に依存してインストールして実行します.次の手順で開始します.
準備ができていない場合は、まず取得したコード倉庫のmicro-services-tutorial-otでnpm installコマンドを実行し、完了したら次のコマンドを実行します.
  • cd frontend/api
  • node index.js
  • ブラウザを開きます.アドレスを入力してください.http://localhost:10001. グラフが見えます.簡単ですよね.
    ターゲット0を試します
    次にデータベースの作成を開始します.このステップは、Dockerを介して、ミラーがない場合は、1ラインのコマンドで取得できます.
    docker pull tutum/influxdb
    どのようにinfluxdb容器を実行すれば、ドキュメントを参照できますか?https://hub.docker.com/r/tutu...
    難点はinfluxDB容器を起動し、成功すればブラウザでinfluxのウェブ画面を確認することができます.
    目標0実現ステップ
  • 次のコマンドでコンテナを起動します.
    docker run-d-p 8083:8083-p 8086:8086 tum/influxdb
  • step 1/services/influx/フォルダにinfluxコンテナを簡単に起動するコマンドセット
  • があります.
  • コマンドを使用してコンテナのIPアドレスを取得します.
    docker-machine ip default
  • ブラウザにhttp://:8083/を入力し、influxコンソール
  • を開く.-pパラメータは、シンクホストに容器の8083、8086ポートを露出するために使用される.-dパラメータは、docker運転バックグラウンドモードを知らせる.
    docker容器をローカルで実行する場合は、個別の仮想マシンごとにそれぞれのIPアドレス(特にMacシステム、Windowsシステム)を使用することに留意する.docker killコマンドを使用してコンテナをいつでも停止できます.
    ターゲット1
    現在のデータベースはすでに実行されています.次にマイクロサービスを作成して、データベースを読み書きします.プログレッシブサービスコードを作成しました.Step 1/services/serializerフォルダの下にあります.
    現在の目標は小さいスクリプトを作成し、実行後に温度データをinfluxデータベースに書き込むことです.サービスが開始されると、以下のコマンドでデータポイントをサービスプログラムに提出することができます.
    curl -X POST -d '{"role": "serialize", "cmd": "write", "sensorId": "1", "temperature": 32}' http://localhost:10000/act  --header "Content-Type:application/json"
    ヒントserializer.jsソースファイルをチェックすると、次の環境変数が使用されていることが分かります.
  • INFLUX_HOST
  • serializer_PORT
  • 初期化スクリプトは、上記の変数データが正しく設定されていることを確認する必要があります.
    ブラウザのinfluxページの画面を通して下記の検索文を入力します.データポイントが本当にinfluxに書き込まれていることを確認できます.
    use temperature;
    select * from temperature;
    目標1実現ステップ
  • Step 2/services/influxフォルダにはinfluxコンテナ起動スクリプト
  • が含まれています.
  • Step 2/services/serializerフォルダには、プログレッシブサービスソースコード
  • が含まれています.
  • は、Step 2/services/serializer/run.sh(Windows用run.bat)スクリプトを使用してサービスを開始する
  • .
  • .step 2/services/serializer/testWrite.sh(windows用testWrit.bat)スクリプトを使って試験データを送信する
  • influxコンソールを使ってデータポイント
  • を調べます.
    注意プログレッシブプログラムはseneca 1マイクロサービスです.Senecaは、独立層として、TCP、HTTP、RabbiitMQ、Redis、NATSなどの様々な伝送機構を実現することができる.本教程では、Json形式のデータをHTTPで伝送する仕組みです.
    ターゲット2
    次のステップは、フロントエンドとプログレッシブサービスを接続し、フロントエンドチャートでセンサが送信するデータを読み取ることを実現する.
    プログレッシブサービスに対応する更新後のフロントエンドプログラムはStep 2/frontendに位置します.
    直面する挑戦は、Influxデータベース、フロントエンドプログラム、プログレッシブサービスを開始することです.スクリプトを作成してフロントエンドサービスとプログレッシブサービスを実現する必要があります.
    この二つのサービスを開始すると、testWrite.shスクリプトを使ってinfluxデータベースにデータを送信した後、フロントエンドページで確認することができます.
    注意更新後の先端コードをチェックすると、次の環境変数が発見されます.
  • PROXY_HOST
  • serializer_PORT
  • froonted_PORT
  • 先端を開く前に、上記の変数を設定する必要があります.
    目標2実現ステップ
  • step 3/services/influx下のスクリプトを使用してinflux容器
  • を起動する.
  • シナリオstep 3/services/serializer/run.sh(windows下でrun.bat)を実行して、プログレッシブサービスを開始します.
  • Start the frontend with theスクリプトstep 3/frontend/run.sh(or run.bat)起動フロントエンドインターフェース
  • ブラウザに入力します.http://localhost:10001/フロントエンドページを表示する
  • スクリプトstep 3/services/serializer/testWritech.sh(windows下でtestWrit.bat)を使っていくつかのテストデータを送信します.
  • フロントエンドページにデータポイントが表示されるべきテーブル
  • ターゲット3
    今システムは3つのモジュールしかないですが、管理はもう難しいです.このステップで直面する課題は、システムをFugeで実行させることです.Fugeはマイクロサービス開発環境で、現地プロセスとdocker容器の簡易化に対応します.
    Step 3/fugeには二つのファイルが含まれています.
  • compose-dev.yml-docker composeフォーマットを使ってシステムを指定するためのプロセスなどの
  • fuge-config.json-fugeグローバルプロファイル
  • 直面する挑戦はFuge端末を使ってシステムを運行するので、fuge関連文書を見ることができます.https://github.com/apparatus/.... システム起動費は、スクリプトstep 3/services/serializer/testWritet.sh(windowsではtestWrite.bat)を使って運転状態をチェックすることができます.先端ページのグラフはデータを直感的に表示します.
    ヒント前にプロセスとコンテナをすべて停止する必要があります.
    ヒントnpm install -g fugeコマンドでfugeがインストールされていることを確認します.
    ヒントfuge shellを使用して、Fuge端末を開くことができます.
    目標3実現ステップ
  • Step 4/fugeフォルダは、fuge端末の構成
  • を含む.
  • 起動fuge
    Fuge shell fuge/compose-dev.yml
  • すべてのサービスを開始します.
    start all
  • オープンhttp://localhost:10001 グラフを見る
  • 脚本step 4/services/serializer/testWrites.shを用いて、プログレッシブサービス
  • にデータを送信する.
    注意Fugeは関連プロセスとdock容器に使用され、次のような仕組みがあります.
  • 環境変数を各プロセス
  • に注入する.
  • は、内部エージェントを起動し、プロセスとコンテナの間でブリッジ
  • を行う.
    このシリーズの記事:
  • ステップで簡単なIoTサービスを構築する(1)
  • ステップで簡単なIoTサービスを構築する(2)
  • ステップで簡単なIoTサービスを構築する(3)
  • SenecaはNode.jsマイクロサービスフレームワーク開発ツールです.その目的は、架設師と開発者のサービスアイデアをコピーし、そのコードをモードによってトリガされる論理的な行動に組み込む方法を提供することであり、これは用例によって作用するモデルである.一度定義されると、モードは簡単にAPIに移行し、使用例とモードを使用してメッセージの内容を定義することができる.↩