SORACOM Beam의 HTTP 요청 헤더 정보를 Flow/Logic Apps로 처리하는 방법

소개



최근 SORACOM BeamMicrosoft Flow/Azure Logic Apps 에서 놀고 있어 @ko2a 입니다.

SORACOM Beam의 구성 옵션으로 IMSIIMEI 장치를 HTTP 요청 헤더에 부여/사용하지 않도록 설정할 수 있습니다.이 정보를 Microsoft Flow/Azure Logic Apps 작업에서 사용하는 방법 정리합니다.

이렇게하면 장치 측에서 일부러 IMSI/IMEI를 얻는 번거 로움이 없어지고 데이터 양도 줄어들 수 있습니다.

검증 장비 / 환경


  • Wio LTE KR 버전
  • 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?

    좋은 웹페이지 즐겨찾기