これはSORACOMリリース1周年記念リレーブログ10/31分です。
山下@YamaHaruka925です。
10月に開催されたSORACOM UG#4に参加した、SORACOMさんのソリューションパートナーであるAcroquestで働く女性エンジニアで、IoTプラットフォーム開発やってます。
お酒をこよなく愛するリケジョです。(リケジョブログも書いてます^^)
SORACOM UGで熊崎さんとお話ししてたら、楽しくお酒を飲んで酔った勢いで、リレーブログ参戦が決定!
今回は、最近体験した「え!?こまった!」を解決してくれたSORACOMさんのアップデートについて書いてみようかなと。
SORACOM Beamがつながらないが原因不明。。。
AcroquestではIoTアプリケーションプラットフォーム「Torrentio」を提供してるわけですが、相談に来られる方々は、やっぱり、センサーからデータ分析・可視化まで一貫して提供してほしい!!という人が多いので、SORACOMさんやその他パートナー企業さんのお力を借りて、トータル提供する流れになります。
そんなある日。
SORACOMのBeamも使用した実証検証を実施することに。
いざ、設定も完了し、データ送信検証開始!
・・・つながらない。
通信できていないようすだけど、エラーも出力されない。
Beamの設定が悪いのか?
はたまたデータ受付側が悪いのか?
送っているデータに不備があるのか?
・・・さっぱりわからない。
手探りでデバッグ、、、なかなか大変でした(^^;
SORACOM Beamでエラーログの確認、やってみた
構成
OpenBlocks IoT EX1に、SORACOM SIMを挿して、
SORACOM Beamを利用してAWS API Gatewayに転送します。
AWS API Gatewayからは、受け取ったデータをそのまま返却します。
AWS API Gatewayの設定は、POSTメソッドで簡単にするために認証なしを採用。
AWS API Gatewayの後段には、Lambdaを置き、うけとったデータをそのまま返却するスクリプトを書く。
設定ができたら、ステージにデプロイし、URLをgetします。
このURLが、SORACOM Beamの転送先に設定するURLになります。
SORACOM Beamの設定はこんな感じ。
エントリポイントは、「http://beam.soracom.io:8888/test」
転送先には、上記で作成したAWS API GatewayのURLを指定しています。
エラーログ確認方法
エラーログは、SORACOMコンソールのサイドメニュー「ログ」から確認できます。
SIMのIMSIを入力することで、エラーログを絞り込んで表示することができます。
通信して検証
まずは、Beamを使って正常に通信。
$ curl -XPOST http://beam.soracom.io:8888/test -d '{"key":"value"}' {"key":"value"}
API Gatewayから、送ったデータがそのまま返ってきます。
このとき、エラーは発生していないので、SORACOMコンソールのログ表示を見ても、空っぽ。
つぎに、誤ったURLで送信してみましょう。
$ curl -XPOST http://beam.soracom.io:8888/xxxx -d '{"key":"value"}' {"message":"Beam configuration for http://beam.soracom.io:8888/xxxx is not found"}
エラーメッセージが返ってきて、「URLがみつからない」ということが一目瞭然。
SORACOMコンソールのログを確認してみると、
エラーログが表示されている!!
これがあれば、リモートで実施している検証でも、エラーをトレースしてデバッグできる!
「便利!!!」
他のエラーも同様に、レスポンスでエラーメッセージが返ってくるとともに、
SORACOMコンソールからログが確認できます。
【メッセージのフォーマット謝り】
$ curl -XPOST http://beam.soracom.io:8888/test -d 'test message' {"message":"Could not parse request body into json: Unrecognized token \'test|' was expecting\'null\',\'true\',\'false\' or NAN\n at [Source: [B@c9e04ec; line: 2, column: 6]"}
【認証不正】
$ curl -XPOST http://beam.soracom.io:8888/test -d '{"key":"value"}' {"message":"Missing Authentication Token"}
SORACOMコンソールのログはこんな感じ。
エラーコードがコンソールから確認できるので、リモートでも何が悪いかの推測が立ちますね。
要望に迅速に対応してもらえるのはありがたい!
このBeamのエラーログ取得機能も、ユーザーからの声を聞いて、
機能追加となったとのこと。
私自身、新機能追加の1週間ほど前に苦労していた内容でした。
実際にBeamを設定し、デバイスにSIMを挿して検証しましたが、実はデバイス側での送信先指定が誤っており、通信ができていなかった。。。
なんてミスをして、検証やり直し。。。なんて苦い思い出が。
なので、今回の機能追加はとてもとてもありがたい。
なので、メジャーなA~Gのサービス追加のような機能追加ではありませんが、このようなユーザの要望に迅速に対応して、サービスに反映している部分こそ、SORACOMさんの素晴らしさだと思いました。
バックエンドで対応してくださっているSORACOMのエンジニア/サポートのみなさん、ありがとうございます!!!
Acroquest Technologyでは、キャリア採用を行っています。
- 日頃勉強している成果を、AWS、Hadoop、Storm、NoSQL、Elasticsearch、SpringBoot、HTML5/CSS3/JavaScriptといった最新の技術を使ったプロジェクトで発揮したい。
- 社会貢献性の高いプロジェクトに提案からリリースまで携わりたい。
- 書籍・雑誌等の執筆や対外的な勉強会の開催を通した技術の発信や、社内勉強会での技術情報共有により、技術的に成長したい。
- OSSの開発に携わりたい。
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
データ分析で国内に新規市場を生み出す新サービス開発者WANTED! - Acroquest Technology株式会社の新卒・インターンシップ - Wantedlywww.wantedly.com