CLIツールの使い方
投稿日 / 投稿者名
2021.04.13 / 伊藤 貴哉
はじめに
本レポートは、Things Cloud の利用例をより知っていただくための実利用レポートとして作成したものです。
Things Cloud は極力後方互換性を持つよう開発されていますが、今後のリリースにより、一部画面やコマンド、手順などが変更となったり、利用できない可能性があることをあらかじめご了承ください。
なお、作成にあたり、以下バージョンを用いています。
- ver.10.6.6.32(backend/UI)
難易度 ★★
所要時間
この手順に沿って、「CLIツールの使い方」を実現するまでの所要時間。
- 約60分
概要
本レポートでは、Things CloudのAPIをコマンドライン上で打つことができるツールを利用する方法を紹介します。このツールを利用することで、スクリプト等と組み合わせることにより、繰り返しのコマンド処理を自動で行うこと等ができる様になります。
前提条件
- コマンドラインツール(Windows:Powershell・コマンドプロンプト, Mac:ターミナル) に関する基本的な知識・操作
- shell(windows:cmd.exe,mac:shell)に関する基本的な知識
注意事項
- 本ツールはPython3で動作しております。
- 本ツールを使用する際のいかなる動作についても、当社は一切責任を負いかねます。予めご了承願います。
CLIツールとは
- Things CloudではAPIを提供しています。そのAPIをコマンドライン上で打つことができるツールとなります。
作業の流れ
1. Python環境のインストール
Macの場合
1. Homebrewのインストール
ターミナルを開き、次のコマンドを入力してください。(しばらく時間がかかります)
備考: 既にインストール済みの場合は次に進んでください
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew update
$ brew install git
下記コマンドでメッセージが返ってくるとインストール完了です。
$ brew doctor
Your system is ready to brew.
2. pyenvのインストール
備考: pyenv及び対象のpythonをインストール済みの場合は CLIツールのインストール に進んでください
- pyenv の導入
brew install pyenv
- パスを通す(zshの場合) - Macの最新バージョンはデフォルトでzshになっています
$ cat << 'EOS' >> ~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"
EOS
$ zsh -l
- パスを通す(bashの場合)
$ cat << 'EOS' >> ~/.bash_profile
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"
EOS
$ source ~/.bash_profile
下記コマンドでメッセージが返ってくるとインストール完了です。
$ pyenv versions
system
3. pythonのインストール
必要なバージョンをインストールします。今回は3.8.1をインストールするので、以下を実行します。
pyenv install 3.8.1
使うバージョンを指定します。
pyenv global 3.8.1
設定結果を確認します。以下を実行して指定したバージョンであることを確認します。(pipのバージョンは、pythonのバージョンによって変動します)
$ python --version
Python 3.8.1
$ pip --version
pip 20.0.2
備考: Macの最新バージョンはデフォルトでzshに設定されている為、適宜デフォルト設定をbashに変更してください。
Windowsの場合
備考: pyenvをインストール済みの場合は 次 に進んでください
1. pyenvのインストール
こちら から pyenv-win のzipファイルをダウンロードします。windowsのコマンドプロンプトを管理者権限で開き、下記コマンドの実行結果が指すディレクトリ(多くの場合は C:\Users\ユーザ名
)に展開します。
> echo %USERPROFILE%
展開すると下のファイルとディレクトリが展開されるので、ディレクトリ pyenv-win-master を .pyenv に変更します。
pyenv-win-master
│ .gitignore
│ .python-version
│ .version
│ LICENSE
│ mirrors.txt
│ README.md
│ requirements.txt
│ setup.py
│ _config.yml
│
├─.github
│ └─ISSUE_TEMPLATE
│ bug_report.md
│ feature_request.md
│
├─pyenv-win
│ │ __init__.py
│ │
│ ├─bin
│ │ pyenv
│ │ pyenv.bat
│ │
│ └─libexec
│ pyenv---version.bat
│ pyenv-commands.bat
│ pyenv-duplicate.bat
│ pyenv-exec.bat
│ pyenv-export.bat
│ pyenv-global.bat
│ pyenv-help.bat
│ pyenv-install.vbs
│ pyenv-local.bat
│ pyenv-rehash.bat
│ pyenv-shell.bat
│ pyenv-shims.bat
│ pyenv-uninstall.vbs
│ pyenv-version.bat
│ pyenv-versions.bat
│ pyenv-whence.bat
│ pyenv-which.bat
│ pyenv.vbs
│
└─tests
test_install.bat
test_uninstall.bat
変更後にdir コマンドで pyenv コマンドの位置を確認します。エラーが返らずに正常に実行結果が返ってくればOKです。
> dir %USERPROFILE%\.pyenv\pyenv-win\bin\pyenv
環境変数を設定します。
スタートボタン
を右クリック ->システム
をクリック設定ウィンドウ
が開くので、右側タブのシステム情報をクリックシステムウィンドウ
が開くので、左側タブのシステムの詳細設定をクリックシステムのプロパティウィンドウ
が開くので、環境変数をクリック環境変数ウィンドウ
が開くので、[ユーザー名]のユーザ環境変数の新規をクリック新しいシステム変数ウィンドウ
が開くので、以下を追加しOKをクリック
変数名: PYENV
変数値: %USERPROFILE%¥.pyenv¥pyenv-win
- [ユーザー名]のユーザ環境変数のPathをクリック後編集をクリック 環境変数名の編集ウィンドウが開くので、新規をクリックし以下を追加後OKをクリック
%PYENV%¥bin
%PYENV%¥shims
以上で環境変数の設定は終了です。適宜OKをクリックし、開いたタブは閉じてください。
以下のコマンドでインストール可能なpythonのバージョンを確認します。ここでエラーが返ってこなければ、正常にpyenvがインストールされています。
pyenv install -l
備考: 対象のpythonをインストール済みの場合は CLIツールのインストール に進んでください
2. pythonのインストール
必要なバージョンをインストールします。今回は3.8.1をインストールするので、以下を実行します。
pyenv install 3.8.1
使うバージョンを指定します。
pyenv global 3.8.1
%USERPROFILE%\.pyenv\pyenv-win\shims%
を更新するために以下を実行します。
pyenv rehash
設定結果を確認します。以下を実行して指定したバージョンであることを確認します。(pipのバージョンは、pythonのバージョンによって変動します)
> python --version
Python 3.8.1
> pip --version
pip 20.0.2
2. CLIツールのインストール
次のzipファイルをダウンロード・展開してください。
macの場合
clitool
ディレクトリが展開されるので、ターミナル を開き以下を実行してください。
$ cd [clitoolが配置されているディレクトリ]
$ mv clitool/ $HOME
$ cd $HOME/clitool
$ pip install -r requirements.txt
$ pip install dist/cumulocity-py-cli-0.0.2.tar.gz
$ pip install -e .
windowsの場合
clitool
ディレクトリが展開されるので、コマンドプロンプトを開き以下を実行してください。
> cd [clitoolが配置されているディレクトリ]
> mv clitool/ %USERPROFILE%
> cd %USERPROFILE%/clitool
> pip install -r requirements.txt
> pip install dist/cumulocity-py-cli-0.0.2.tar.gz
> pip install -e .
3. テナント環境情報をファイル化
macの場合
以下のコマンドでテナント環境情報を記載したファイルを作成し、わかりやすいフォルダに配置します。(フォルダは事前に作成しておいてください)
ここでは、$HOME/Desktop/tenantinfo
の mytenant.sh
に記載しています。
$ cat << 'EOS' >> ~/Desktop/tenantinfo/mytenant.sh
export OS_USERNAME='<username>'
export OS_PASSWORD='<password>'
export OS_ENDPOINT='<endpoint>'
export OS_TENANTID='<tenantid>'
EOS
windowsの場合
テキストエディタ(メモ帳やvscode等)で以下を入力し、所定の場所に配置します。(ここでは%USERPROFILE%/Desktop/tenantinfo
の mytenant.bat
に記載しています。)
set OS_USERNAME=<username>
set OS_PASSWORD=<password>
set OS_ENDPOINT=<endpoint>
set OS_TENANTID=<tenantid>
username
Things Cloudへログインする際の ユーザー名
へ入力する値を記載します。
password
Things Cloudへログインする際の パスワード
へ入力する値を記載します。
endpoint
Things Cloudへログインした際に、ブラウザに表示されるURLを記載します。URLにおける最初の /
の前までが対象です。
- 例:
https://****.je1.thingscloud.ntt.com
tenantid
Things CloudのUIで、右上のユーザ名をクリックした際に表示される テナントID
の値を記載します。
4. CLIツールの実行
3. テナント環境情報をファイル化 で作成したファイルを以下のコマンドで読み込みます。読み込むPathは適宜変更してください。
macの場合
$ source ~/Desktop/tenantinfo/mytenant.sh
windowsの場合
> C:¥Users¥hoge¥Desktop¥tenantinfo¥mytenant.bat
コマンドを実行します。以下の例では指定したIDのメジャーメント情報を表示します。
$ cum measurement show 3336258
+---------+----------------------------+-------------+-------------------------------+------------------------------------------------------------+
| id | measurement type | device_id | time | body |
+=========+============================+=============+===============================+============================================================+
| 3075362 | c8y_TemperatureMeasurement | 73558 | 2020-10-06T14:50:00.000+09:00 | {'c8y_TemperatureMeasurement': {'unit': 'C', 'value': 20}} |
+---------+----------------------------+-------------+-------------------------------+------------------------------------------------------------+
5. 実行例
GET(LIST)
$ cum event list 73558
+---------+--------------+-------------+
| id | event type | device id |
+=========+==============+=============+
| 6573082 | com_test | 73558 |
+---------+--------------+-------------+
| 6573173 | com_test2 | 73558 |
+---------+--------------+-------------+
GET(SHOW)
$ cum event show 6573082
+---------+--------------+-------------+-------------------------------+------------------+
| id | event type | device_id | time | text |
+=========+==============+=============+===============================+==================+
| 6573082 | com_test | 73558 | 2021-04-12T10:54:00.000+09:00 | Location updated |
+---------+--------------+-------------+-------------------------------+------------------+
POST
$ cum event create 'com_test' '2021-04-21T10:30:00.000+09:00' 'test' 73558
+---------+--------------+-------------+-------------------------------+--------+
| id | event type | device_id | time | text |
+=========+==============+=============+===============================+========+
| 6610593 | com_test | 73558 | 2021-04-21T10:30:00.000+09:00 | test |
+---------+--------------+-------------+-------------------------------+--------+
PUT
$ cum event update 'update' 6610593
+---------+--------------+-------------+-------------------------------+--------+
| id | event type | device_id | time | text |
+=========+==============+=============+===============================+========+
| 6610593 | com_test | 73558 | 2021-04-21T10:30:00.000+09:00 | update |
+---------+--------------+-------------+-------------------------------+--------+
DELETE
$ cum event delete 6610593
(deleteコマンドは結果が返ってきません)
6. ドキュメント
CLIツールのドキュメントに関しては以下からダウンロードできます。
2021年 4月 16日現在、メジャーメント,アラーム,イベント,インベントリ(マネージドオブジェクト)のみに対応しています。