SORACOM Beam の HTTP リクエストヘッダー情報を Flow/Logic Apps で扱う方法
はじめに
最近 SORACOM Beam と Microsoft Flow / Azure Logic Apps で遊びまくってる @ko2a です。
SORACOM Beam の設定オプションとして、デバイスの IMSI と IMEI を HTTP リクエストヘッダーへ付与する / しないを設定できるのですが、この情報を Microsoft Flow / Azure Logic Apps のアクションで使用する方法を備忘録としてまとめます。
これによって、デバイス側でわざわざ IMSI / IMEI を取得する手間がなくなり、またデータ量も(微々たるものではありますが)削減することができます。
検証機材 / 環境
- Wio LTE JP Version
- SORACOM 日本向け Air SIM (plan-D)
- Azure Logic Apps (東日本)
検証構成
Wio LTE から SORACOM Beam へデータを送信し、SORACOM Beam を Azure Logic Apps のトリガーとして起動して Microsoft Teams へデータを POST して結果を確認します。
Logic Apps のフローは以下となります。
今回はアクションの [Message]を操作していきます。
なお、今回使用したデバイスの処理には、JSON メッセージ内にも IMSI と IMEI を埋め込んで送っていますが、今回はこちらを使用せず、 HTTP リクエストヘッダーの値を参照します。
SORACOM Beam の設定
ヘッダ操作の[IMSI ヘッダ][IMEI ヘッダ]を ON に設定します。
Flow / Logic Apps の設定
トリガーのすべての情報を取得
トリガーの出力情報をすべて取得する場合は、 triggerOutputs() を使用します。
triggerOutputs()
出力結果は以下となります。
headers や body の中身も丸見えです。
User-Agent や Content-Type も確認できます。
IMSI / IMEI の取得
HTTP リクエストヘッダーの情報は triggerOutputs() で取得できることがわかったので、後は対象の情報を選択するだけで OK です。
concat('IMEI:', triggerOutputs()['headers']?['x-soracom-imei'], ' IMSI:', triggerOutputs()['headers']?['x-soracom-imsi'])
この例では、 concat() で IMSI / IMEI を連結して Teams へ POST しています。
おわりに
昨年の Advent Calendar の IFTTT 連携 の際、Beam のヘッダーで載せれるんだから使えたらいいのに・・・と思っていたのですが、 Microsoft Flow / Azure Logic Apps だとちょこっといじって取得でいきるのはありがいたいですね。
またデバイス側であれこれいじらなくても、必要に応じてユーザーコンソールで設定を変えれるので、デバイス側の処理を手入れなくて済むのも結構ありがたいことですね。
参考資料
Azure Logic Apps : Get HTTP Request Header Key Value into Conditional Check
Parse headers returned from http action?
Author And Source
この問題について(SORACOM Beam の HTTP リクエストヘッダー情報を Flow/Logic Apps で扱う方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ko2a/items/edb86aac54e337eca13f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .