soracom-cli用覚え書き

こんにちは、mi2yo4です。
今回は未来の私への重要なメッセージ、別名「覚え書き」を書いてみようかと思います。

弊社もSORACOM Air SIMをガンガンに使っている所です。

ただ、これまでは「ただSIMを使っている」状態だったのです。
が、ソラコムさんもほら、色々と便利なAPI群、ツールを提供している訳ですので、それを使わないというのも勿体ないですよね?

そんなわけで、今回は手始めにsoracom-cliを使ってみようかと思います。

soracom-cliとは

詳しい説明は公式ドキュメントを見れば分かります。

…だけでは話が終わってしまいますね。

SORACOMさんの管理画面「SORACOMユーザーコンソール」で出来る事は全てAPIベースとなっています。
管理するSIMが少ないうちはユーザーコンソールでも問題ありません。が、対象のSIM数が大量になればなるほど何かしらのプログラムから、もしくはCLIで操作できないと管理コストが膨大になってしまいます。
(ウチはそろそろその瀬戸際かな…という所ですね)
そのCLIで操作できるのがsoracom-cli、という訳ですね。
ちょっとした動作確認に使うのに便利なツールなのではないでしょうか。

soracom-cliのインストール

弊社の開発環境はWindowsが多いので、Windowsベースで話を進めます。

GitHubのリリースページからダウンロードできるようです。

Windows版は上の画像では見えないのですが、ちょっと下にzip版が置いてあります。それをダウンロードして解凍。
soracom.exeを適当な所に配置してパスを通します。

動作確認

PS C:\Users\mi2yo4> soracom version
SORACOM API client v0.3.1

こんな感じでバージョンを表示させてみれば初期動作確認はOK。
迷ったら soracom –help すればOKです。
各種コマンドについても soracom <何かのコマンド> –help とすれば、ヘルプが出るので最低限何とかなります。

バージョンは頻繁にアップデートされるようで、出来るだけ最新版を使っておいた方が良いかと思います。

初期設定

PS C:\Users\mi2yo4> soracom configure
--- SORACOM CLI setup ---
This will create a directory C:\Users\oki\.soracom if it does not exist yet and place 'default.json' in it.

Please select which coverage type to use.

1. Global
2. Japan

select (1-2) > 2


Please select which authentication method to use.

1. Input AuthKeyId and AuthKey * Recommended *
2. Input Operator credentials (Operator Email and Password)
3. Input SAM credentials (OperatorId, User name and Password)

select (1-3) > 2
email: hoehoe@sample.com
password:

認証について、とりあえず今回は動作を早く確認したい、という事もあり「2. Input Operator credentials」を選択しました。
(そのうち1. Input AuthKeyId and AuthKeyを選択予定ですが)
ここではSORACOM ユーザーコンソールにログイン出来るemailアドレスとパスワードを入力してください。

問題が無ければ、ユーザーディレクトリ直下に「.soracom」ディレクトリが作成され、中にdefault.jsonが作成されます。
もしパスワード等を変更した場合は、このファイルを直接書き換えても良いのかもしれません。

基本的なコマンド確認編

soracomコマンドで色々な事が確認できますが、まずはSIMの情報とグループへの追加・削除を行ってみます。
ちなみにグループは1SIMで1個の割り当てのようです。

SIM一覧の情報を取得する

soracom subscribers list

SIMの情報を取得する

soracom subscribers get --imsi <対象のSIMのIMSI>

グループの情報を取得する

soracom groups get --group-id <グループID>

グループにSIMを追加する

soracom subscribers set-group --group-id <グループID> --imsi <対象のSIMのIMSI>

グループからSIMを削除する

soracom subscribers unset-group --imsi <対象のSIMのIMSI>

ちょっと難しいコマンド編

今回試したかったのはPublic Gate機能のVPG設定を出来るだけ簡単に出来ないかな~、というものでした。

soracom –helpで掘り下げていくと、soracom groups put-config で何とか出来そうなのは分かりました。
が、–group-idしかオプションの与え方が良く分からず、–bodyオプションはどういう風に使えばいいのか見当がつかずorz

機能は違うのですが、SORACOM Harvest でデバイスのデータをクラウドで収集・取得・可視化するのページが参考になりそうです。
「soracom-cliでの設定方法」という段落があったので、それを参考に以下のようなコマンドを発行してみると…成功!!!

グループのPublic Gate(VPG設定)を有効化する

soracom groups put-config --group-id <グループID> --namespace SoracomAir --body
 '[{\"key\":\"useVpg\",\"value\":true},{\"key\":\"vpgId\", \"value\":\"PublicGate\"}]'

グループのPublic Gate(VPG設定)を無効化する

soracom groups put-config --group-id <グループID> --namespace SoracomAir --body
 '[{\"key\":\"useVpg\",\"value\":false},{\"key\":\"vpgId\", \"value\":\"\"}]'

ここまで何とか出来る事ができました。お疲れ様です。

注意点としてPublic Gate機能はSIM一枚当たり5円/日のコストが余分にかかってしまう、という事とセッションを繋ぎなおさないと有効/無効が切り替えられない、というものがあります。
セッションの繋ぎ直しについてはそれぞれのSIMが入っている端末から行ってもいいのですが、soracom-cliからも可能です。

soracom subscribers delete-session --imsi <対象のSIMのIMSI>

これで完璧…かな?
早速皆さんも試してみましょう!

セッション切断APIについては中の人(ソラコム “MAX” 松下さん)に教えて頂きました。感謝!

参考情報

SORACOM Gate の Public Gate 機能でデバイス間通信を試す
セッション切断APIの公開とその使いどころ