$30 off During Our Annual Pro Sale. View details »

AWS IoTエンタープライズボタンで
お手軽イベントトリガ

AWS IoTエンタープライズボタンで
お手軽イベントトリガ

2018-06-02 ゆるゆるIT勉強会 feat.Reedex Vol.3 で発表したスライドです.

Satoshi SAKAO

June 02, 2018
Tweet

More Decks by Satoshi SAKAO

Other Decks in Programming

Transcript

  1. AWS IoTエンタープライズボタンで
 お手軽イベントトリガ ゆるゆるIT勉強会 feat.Reedex Vol.3 2018/06/02 (Sat) Satoshi SAKAO

    (@ottijp) Y1
  2. Who Y2 インフォコム株式会社 オープンイノベーションセンター " アプリケーションエンジニア JS(ES6) / Node.js /

    GCP / IoT / iOS (Swift) ネコ / テニス @ottijp Satoshi SAKAO
  3. Y3 最近意識していること

  4. Y4 ◦◦を解決 するために ◦◦やってみた・使ってみた ⇨ Problem driven Trial Problem

  5. Y5 今回の題材( ) Problem

  6. Y6 オフィスにおける庶務遠すぎ問題 庶務 ボス 書類 polling

  7. Y7 オフィスにおける庶務遠すぎ問題 庶務 ボス 書類 push

  8. Y8 庶務遠すぎ問題 を解決するために AWS IoTエンタープライズボタン使ってみた

  9. Y9 AWS IoT Enterprise Button
 (エンプラボタン) 2018年5月 発売!

  10. Y10 Amazon Dash エンプラボタン

  11. Y11 自前の Lambda起動 エンプラボタン Amazon Dash Amazon AWS 1-click 特定商品の

    発注
  12. Y12 エンプラボタンのセットアップは簡単!

  13. セットアップ手順 • Lambdaファンクションを作る • メール・SMS送信の場合は不要 • AWS 1-Clickアプリでエンプラボタンのセットアップ • Wi-Fi設定

    • アクション(SMS・メール・Lambda)の設定 • プレイスメントの設定 • おわり Y13 1-Click
  14. 作ったLambdaファンクション Y14 1 const request = require('request') 2 3 exports.handler

    = async (event) => { 4 const batteryLife = event.deviceInfo.remainingLife 5 6 const options = { 7 url: process.env.SLACK_URL, 8 headers: { 9 'Content-Type':'application/json' 10 }, 11 json: { 12 channel: process.env.SLACK_CHANNEL, 13 text: `書類投函ボタンが押されました!(バッテリ残量: ${batteryLife}%)`, 14 username: '書類箱', 15 icon_emoji: ':inbox_tray:', 16 }, 17 } 18 19 return new Promise((resolve, reject) => { 20 request.post(options, (error, response, body) => { 21 if (error) { reject(error) } 22 else { 23 resolve({ 24 statusCode: response.statusCode, 25 body, 26 }) 27 } 28 }) 29 }) 30 } Slackに通知するだけ
  15. 設置したエンプラボタン Y15

  16. Y16 ポチっ!!

  17. Lambdaに送られるイベント情報 Y17 1 { 2 "deviceInfo": { 3 "deviceId": "xxxxxxxxxxxxxx4T",

    4 "type": "button", 5 "remainingLife": 99.8, 6 "attributes": { 7 "projectRegion": "ap-northeast-1", 8 "projectName": "doc-notifier", 9 "placementName": "team-doc-inbox", 10 "deviceTemplateName": "notify" 11 } 12 }, 13 "deviceEvent": { 14 "buttonClicked": { 15 "clickType": "SINGLE", 16 "reportedTime": "2018-05-20T12:22:40.028Z" 17 } 18 }, 19 "placementInfo": { 20 "projectName": "doc-notifier", 21 "placementName": "team-doc-inbox", 22 "attributes": { 23 24 }, 25 "devices": { 26 "notify": “xxxxxxxxxxxxxx4T" 27 } 28 } 29 } デバイス情報 クリックイベント SINGLE/DOUBLE/LONG プレイスメント
  18. 話したこと • Problem driven Trialのススメ • AWS IoT Enterprise Buttonは超お手軽

    Y18
  19. $ exit Y19

  20. Y20 Appendix

  21. AWS 1-Click • 物理世界から簡単にLambdaファンクションを起動するサービス • AWS IoT Coreの認証や暗号化周りなどを一括してやってくれ るようなサービス •

    デバイス・プロジェクト設定とレポート機能 • 今ある対応デバイス • AWS IoTエンタープライズボタン(Wi-Fi) • AT&T LTE-M Button(LTE) Y21 AT&T LTE-M Button
  22. AWS 1-Click Y22

  23. AWS 1-Clickアプリ Y23

  24. AWS 1-Clickアプリ Y24