こんにちは、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の公開とその使いどころ