share facebook facebook twitter menu hatena pocket slack

2018.11.27 TUE

soracom-cliでButtonの情報を取得してみた

若松 剛志

WRITTEN BY 若松 剛志

どうも若松です。

SORACOM API では、エンドポイントの /gadgets にリクエストを送ることで Button の情報を取得することができます。
APIの一覧は以下となります。
https://dev.soracom.io/jp/docs/api/#/Gadget

しかし、インフラエンジニアの私は生のエンドポイントを叩くことに慣れていません。
やはり馴染みのあるCLIで叩きたいわけです。

そこで何の気なしに soracom-cli の github を覗いたところ、gadgets サブコマンドがリリースされていたので、使ってみました。

soracom-cli

soracom-cli は SORACOM から公式で提供されているコマンドラインツールで、コマンドラインからAPIを叩くことができます。

インストール手順は github のREADMEに記載されています。
https://github.com/soracom/soracom-cli/blob/master/README_ja.md

soracom-cli の利用には(というかAPIを叩くには)、SAMの AuthKeyIdAuthKey が必要ですが、取得方法等は割愛します。
SAM については以下にまとまっています。
https://dev.soracom.io/jp/start/sam/

Button の情報を取得する

Button 単体の情報を取得するには、以下のコマンドを実行します。

soracom gadgets get --product-id button --serial-number XXXXXXXXXXXXXXXX

--product-id には button を指定します。
(おそらく Button 以外の gadgets がリリースされれば他の値と使い分けることになると思います)
--serial-number には製造番号(DSN)を指定します。

レスポンスは 以下のような Button 情報の JSON となります。

{
    "attributes": {
        "contractEndingTime": "yyyy-mm-ddThh:mm:ss.xxxZ",
        "firstClickTimestamp": "yyyy-mm-ddThh:mm:ss.xxxZ",
        "remainingCount": 1400
    },
    "createdTime": XXXXXXXXXXXXX,
    "id": "button/XXXXXXXXXXXXXXXX",
    "lastModifiedTime": XXXXXXXXXXXXX,
    "lastSeen": {
        "batteryLevel": 1,
        "clickEventPropagated": true,
        "clickTime": "yyyy-mm-ddThh:mm:ss.xxxZ",
        "clickType": "SINGLE"
    },
    "operatorId": "OPXXXXXXXXXX",
    "productId": "button",
    "serialNumber": "XXXXXXXXXXXXXXXX",
    "status": "active",
    "tags": {},
    "terminatedTime": null,
    "terminationEnabled": false
}

まとめ

soracom-cli は AWSCLI と使用感が非常に似ているので、AWSCLIユーザであれば慣れると思います。
スクリプトに組み込む際に、活用してみてはいかがでしょうか。

元記事はこちら

soracom-cliでButtonの情報を取得してみた

若松 剛志

若松 剛志

AWS環境の構築、運用を担当。インフラを中心に雑食な感じで生きてます。JAWS-UGでも活動中。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。