Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Who Y2 インフォコム株式会社 オープンイノベーションセンター " アプリケーションエンジニア JS(ES6) / Node.js / GCP / IoT / iOS (Swift) ネコ / テニス @ottijp Satoshi SAKAO

Slide 3

Slide 3 text

Y3 最近意識していること

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Y5 今回の題材( ) Problem

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Y10 Amazon Dash エンプラボタン

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

作った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に通知するだけ

Slide 15

Slide 15 text

設置したエンプラボタン Y15

Slide 16

Slide 16 text

Y16 ポチっ!!

Slide 17

Slide 17 text

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 プレイスメント

Slide 18

Slide 18 text

話したこと • Problem driven Trialのススメ • AWS IoT Enterprise Buttonは超お手軽 Y18

Slide 19

Slide 19 text

$ exit Y19

Slide 20

Slide 20 text

Y20 Appendix

Slide 21

Slide 21 text

AWS 1-Click • 物理世界から簡単にLambdaファンクションを起動するサービス • AWS IoT Coreの認証や暗号化周りなどを一括してやってくれ るようなサービス • デバイス・プロジェクト設定とレポート機能 • 今ある対応デバイス • AWS IoTエンタープライズボタン(Wi-Fi) • AT&T LTE-M Button(LTE) Y21 AT&T LTE-M Button

Slide 22

Slide 22 text

AWS 1-Click Y22

Slide 23

Slide 23 text

AWS 1-Clickアプリ Y23

Slide 24

Slide 24 text

AWS 1-Clickアプリ Y24