クイックスタート ― REST APIを使って設定する#

Terminal System 2 v1.0.0

本章では、設定用PCからTerminal Systemに対してREST APIコールを行うことにより設定を行い、intdashサーバーへのデータ送信を開始する方法を紹介します。

REST APIコールは設定用PCからcurlコマンドを使って行えます。

準備するもの#

以下を用意してください。

  • Terminal System OS 2が インストール されたエッジコンピューター

  • Terminal SystemのBasic認証に必要なユーザー名とパスワード(ユーザー名 user のパスワード)

  • intdashサーバーのURL

  • intdashのプロジェクトUUID(Global Projectを使用する場合は不要)

  • エッジのUUID(このTerminal Systemに割り当てるエッジアカウントのUUID)

  • クライアントシークレット(上記エッジアカウントのクライアントシークレット)

エッジコンピューターと設定用PCをLANケーブルで接続する#

  1. エッジコンピューターと設定用PCがLANにより疎通可能なネットワーク環境を整えます。 通常は、設定用PCとエッジコンピューターをLANケーブルで直接接続するか、エッジコンピューターと設定用PCを同じローカルネットワークに接続します。

    ../../_images/terminal-config-via-ethernet-cable1.png

    図 123 設定用PCとエッジコンピューターを接続する#

    注釈

    上の図ではエッジコンピューターと設定用PCを直接接続していますが、エッジコンピューターと設定用PCが同じローカルネットワークに接続されていれば構いません。

  2. エッジコンピューターの電源をオンにします。

Terminal System APIの使用方法#

注釈

Terminal System APIにはローカルネットワーク内からしかアクセスできません。 プライベートIPアドレスまたはリンクローカルアドレスからのみアクセスが可能です。

Terminal SystemへのREST APIコールは以下のように行います。

  • APIコール送信先のホスト名は <Terminal Systemのコンピューター名>.local 、または、Terminal SystemのIPアドレスを指定します。

  • 送信先ポート番号として 8081 を指定します。

  • 認証にはBasic認証を使用します。 user という名前のユーザーのパスワードが必要です。

注釈

初期設定では以下のようになっています。

  • コンピューター名: terminal-system

  • user という名前のユーザーのBasic認証パスワード: プロビジョニング で設定したパスワード

まず、以下のようにコマンドを実行して、正しくレスポンスがあるかどうかを確認します(コンピューター名とパスワードを初期設定から変更した場合は、正しいものに置き換えてください)。

$ export USER_PASS=<プロビジョニングで設定したパスワード>
$ export COMPUTER_NAME=terminal-system
$ export API_FQDN=$COMPUTER_NAME.local:8081
$ curl -sS -w '%{http_code}\n' -u user:$USER_PASS http://$API_FQDN/api/version

上記のcurlコマンドでは、標準出力にAPIのレスポンスボディーが出力され、最後にHTTPステータスコードが出力されます。 以下のような出力が得られた場合は、正常です。

{
  "version": "1.0.0"
}
200

HTTPステータスコードは、200番台の場合は成功を、400番台または500番台の場合は失敗を表します。

上記のような出力が得られなかった場合は、 トラブルシューティング を参照してください。

接続先とプロジェクトを設定する#

設定用PCで、以下のcurlコマンドを実行して設定を行います。

$ curl -sS -w '%{http_code}\n' -u user:$USER_PASS -X PATCH -d '
  {
    "server_url": "https://example.intdash.jp",
    "project_uuid": "00000000-0000-0000-0000-000000000000",
    "edge_uuid": "f90f2b42-66a5-4a57-8e99-468c36ebb6f2",
    "client_secret": "sEh9ZHPoKX8QYU...iBn5fneFM"
  }
' http://$API_FQDN/api/agent/connection
  • server_url intdashサーバーURL

  • project_uuid プロジェクトのUUID

    (Global Projectを使用する場合、 00000000-0000-0000-0000-000000000000 を設定してください。または project_uuidの行を削除してください。)

  • edge_uuid エッジのUUID(このTerminal Systemに割り当てるエッジアカウントのUUID)

  • client_secret クライアントシークレット(上記エッジアカウントのクライアントシークレット)

データの送信を開始する#

デフォルトの状態では、Terminal System自体の情報(インベントリー情報)をリアルタイムデータとしてintdashサーバーに送信する設定が既にできていますので、センサーやカメラが接続されていなくても、すぐにデータの送信を開始し、疎通確認をすることができます。

注釈

デフォルトの状態では、Terminal Systemのインベントリー情報を送信するためのデバイスコネクター設定、デバイスコネクターIPC設定、アップストリーム設定が作成済みです。

この設定では、まず、デバイスコネクターサービス Device Inventory によりTerminal Systemの状態についての情報が収集され、それが、 device-inventory というIDを持つデバイコネクターIPCに送られます。 そのデータはintdash Edge Agent 2により default-upstream というIDを持つストリームに送られ、intdashサーバーに送信されます。

../../_images/quickstart-stream-dc.png

図 124 デフォルトのデバイスコネクター、デバイスコネクターIPC、ストリームの設定#

設定用PCで、以下のcurlコマンドを実行することで、計測を開始します。

$ curl -sS -w '%{http_code}\n' -u user:$USER_PASS -X POST http://$API_FQDN/api/docker/composes/measurement/start

データ送信を確認する#

Edge Finderを開いて、リアルタイムデータが送信されていることを確認します。

../../_images/edge-finder-device-inventory.ja.png

図 125 Edge Finderで確認#

計測を終了する場合は、設定用PCで以下のcurlコマンドを実行してください。

$ curl -sS -w '%{http_code}\n' -u user:$USER_PASS -X POST http://$API_FQDN/api/docker/composes/measurement/stop

以上で、クイックスタートの手順は完了です。

本章ではまず、REST APIを使って、Terminal Systemの接続先(intdashサーバー)を設定し、計測の開始と終了の操作を行いました。 他の設定項目の変更や他の操作の場合も、REST APIを使って行う手順は同様です。

ここではデフォルトの設定を使用したため設定手順を省略しましたが、データ送信のためにはストリームの設定、デバイスコネクターIPCの設定、デバイスコネクターの設定が必要です。 詳細については、 REST APIによる操作 を参照してください。