CLIツールの使い方

投稿日 / 投稿者名

2021.04.13 / 伊藤 貴哉

はじめに

本レポートは、Things Cloud の利用例をより知っていただくための実利用レポートとして作成したものです。
Things Cloud は極力後方互換性を持つよう開発されていますが、今後のリリースにより、一部画面やコマンド、手順などが変更となったり、利用できない可能性があることをあらかじめご了承ください。
なお、作成にあたり、以下バージョンを用いています。

難易度 ★★

所要時間

この手順に沿って、「CLIツールの使い方」を実現するまでの所要時間。

概要

本レポートでは、Things CloudのAPIをコマンドライン上で打つことができるツールを利用する方法を紹介します。このツールを利用することで、スクリプト等と組み合わせることにより、繰り返しのコマンド処理を自動で行うこと等ができる様になります。

前提条件


注意事項

CLIツールとは

作業の流れ

  1. Python環境のインストール
  2. CLIツールのインストール
  3. テナント環境情報をファイル化
  4. CLIツールの実行
  5. 実行例
  6. ドキュメント



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ツールのインストール に進んでください

brew install pyenv
$ cat << 'EOS' >> ~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"
EOS
$ zsh -l
$ 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

環境変数を設定します。

  1. スタートボタンを右クリック -> システムをクリック
  2. 設定ウィンドウ が開くので、右側タブのシステム情報をクリック
  3. システムウィンドウ が開くので、左側タブのシステムの詳細設定をクリック
  4. システムのプロパティウィンドウ が開くので、環境変数をクリック
  5. 環境変数ウィンドウ が開くので、[ユーザー名]のユーザ環境変数の新規をクリック
  6. 新しいシステム変数ウィンドウが開くので、以下を追加しOKをクリック
変数名: PYENV
変数値: %USERPROFILE%¥.pyenv¥pyenv-win
  1. [ユーザー名]のユーザ環境変数の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/tenantinfomytenant.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/tenantinfomytenant.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における最初の / の前までが対象です。

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日現在、メジャーメント,アラーム,イベント,インベントリ(マネージドオブジェクト)のみに対応しています。