• 投稿日
  • 【Ask SORACOM Vol.4】 発注単位で購入した SIM の情報を出力できますか? 他

    こんにちは、CRE (Customer Reliability Engineer) の三國です。

    ソラコムでは多くのお客様からお問い合わせを頂いておりますが、多くのお客様のナレッジとできるようなお問い合わせ・回答を不定期に紹介しております。SORACOM サービスのご利用にあたって気付きになれば幸いです。
    なお内容についてはお客様より許可を頂いて掲載しております。また、FAQ サイトも随時更新していますのでご参照ください。

    それでは第 4 回、早速まいりましょう!


    質問 1.

    どの SIM がいつ発注したものか、後から参照したいと思っています。発注単位で購入した SIM の情報を出力できますか?

    回答 1.

    はい、オーダー ID から発注した SIM の IMSI や MSISDN を参照できます。
    API を提供していますので SORACOM CLIAPI リファレンス (listOrderedSubscribers API) から呼び出してください。

    SORACOM CLI でのコマンド例 :

    soracom orders list-subscribers --order-id=[オーダー ID]
    

    実行例 (一部情報はマスクしています) :

    $ soracom orders list-subscribers --order-id=20190718xxxxxx_xxxxxxxx
    {
      "orderedSubscriberList": [
        {
          "iccid": "89811xxxxxxxxxxxxxx",
          "imsi": "44010xxxxxxxxxx",
          "msisdn": "020xxxxxxxx",
          "serialNumber": "DNxxxxxxxxxxxxx"
        }
      ]
    }
    

    オーダー ID はユーザーコンソールの発注画面から一覧を確認できます。

    また、同様に API を提供していますので SORACOM CLIAPI リファレンス (listOrders API) で確認してください。

    実行例 (一部情報はマスクしています) :

    $ soracom orders list
    {
      "orderList": [
        {
          "currency": "JPY",
          "email": "xxxx@xxxx.com",
          "orderDateTime": "202003xxxxxxxx",
          "orderId": "202003xxxxxxxx_xxxxxxxx",
          "orderItemList": [
            {
    ...
    

    質問 2.

    Raspberry Pi より SORACOM Harvest Files へアップロードした画像を SORACOM Lagoon の Dynamic Image Panel へ表示しています。また同じ Raspberry Pi から GPIO とつなげたセンサーのデータを SORACOM Harvest Data へ送信しています。アップロードは以下のように行っています。

    # ファイルのアップロード
    
    filename=file.jpg
    curl -X PUT --data-binary @${filename} -H 'content-type:image/jpeg' \
    http://harvest-files.soracom.io/lagoon/${filename}
    
    # センサーデータのアップロード
    
    curl -X POST -d '{"temp":30,"humi":40}' http://harvest.soracom.io
    

    両方とも成功するのですが、ファイルのアップロード直後は問題なく SORACOM Lagoon にて表示されていた画像が、センサーデータのアップロード後はエラーが表示されるようになってしまいました。
    どのように解決すればよいでしょうか?

    回答 2.

    当問題は SORACOM Harvest Files (以下 Harvest Files) を SORACOM Lagoon (以下 Lagoon) で可視化しつつ、同じ SIM で SORACOM Harvest Data (以下 Harvest Data) にその他のデータを格納したときに起きる既知の問題です。
    以下に原因と回避策を紹介します。

    原因

    Harvest Files の Harvest Data 連携機能を利用すると、Harvest Files へのアップロード時に Harvest Data へ以下のような JSON が記録されます。

    { "url": "/v1/files/private/lagoon/file.jpg", "contentType": "image/jpeg" }
    

    Lagoon の Dynamic Image Panel は Harvest Data の最新の記録を読み込んで表示できます。最新の記録に "url":"[Harvest File 上のパス]" があれば Harvest Files を読み込んで Lagoon へ表示します。

    今回の場合は、Harvest Files のアップロード後に Harvest Data へ以下のような JSON が記録されます。

    { "temp": 30, "humi": 40 }
    

    こちらには "url" の値がないため、Lagoon は最新の記録から Harvest Files のパスが読み込めず、表示できません。

    既に表示がある Lagoon の場合はそちらの表示が画面に残ったままエラーを表示します。

    回避策

    以下のように Harvest Data で送る JSON に "url":"[Harvest File 上のパス]" を付けて送ることで回避できます。

    # ファイルのアップロード
    filename=file.jpg
    curl -X PUT --data-binary @${filename} -H 'content-type:image/jpeg' \
    http://harvest-files.soracom.io/lagoon/${filename}
    
    # センサーデータとファイルパスのアップロード
    data='{"temp":20,"humi":60,"url":"/v1/files/private/lagoon/'${filename}'","contentType":"image/jpeg"}'
    curl -X POST -d ${data} http://harvest.soracom.io
    


    バックナンバーは asksoracom カテゴリで確認できます!

    それでは、次回もお楽しみに!