活動量計でLambda

34
活活活活 =>Lambda 2016/03/14 活活活活活活活活活活 in 活活

Transcript of 活動量計でLambda

Page 1: 活動量計でLambda

活動量計=>Lambda2016/03/14 クラウド合同セミナー in 金沢

Page 2: 活動量計でLambda

自己紹介 JAWS-UG 白山 中道システム開発会社に勤務 Twiter :やってません Facebook :やってます

Page 3: 活動量計でLambda

突然ですが

Page 4: 活動量計でLambda

『ボタン (button) 』欲しくありませんか?

Page 5: 活動量計でLambda

『 AWS を操作できるボタン』欲しくありませんか?

Page 6: 活動量計でLambda

作ってみましょう!

Page 7: 活動量計でLambda

用意するもの材料 分量

Misfit FLASH 1 台スマートフォン iPhone/Android お好みで 1 台AWS アカウント 1 つ

Page 8: 活動量計でLambda

Misfit FLASH?

Page 9: 活動量計でLambda

Misfit FLASH? 『活動量計』 実売: \5,000 以下

Page 10: 活動量計でLambda

活動量計って?万歩計と異なり、日常の様々な活動を測定最近は睡眠や心拍数が測れる機種も登場スマホと連動するウェアラブルデバイス型が人気

Page 11: 活動量計でLambda

Misfit FLASH はボタン活動量計なのにタップ、ダブルタップ、トリプルタップ、長押し可連携でスマホのカメラ撮影や音楽再生が可『 IFTTT (イフト)』も割り当てられる

Page 12: 活動量計でLambda

IFTTT (イフト)?WEB サービス同士を連携させる WEB サービスA サービスで△ △したら(トリガー)、自動的に B サービスで○ ○させる(アクション) ことができる

Page 13: 活動量計でLambda

例えば・・・ 明日の朝が雨ならメールを送信する ブログに投稿したら Facebook に同じ内容で投稿する

IFTTT (イフト)?WEB サービス同士を連携させる WEB サービスA サービスで△ △したら(トリガー)、自動的に B サービスで○ ○させる(アクション) ことができる

Page 14: 活動量計でLambda

こんなことができないか?『 FLASH 』をダブルタップしたらiPhone 経由で『 IFTTT 』を使って『 AWS Lambda 』を呼び出して何かをさせる

Page 15: 活動量計でLambda

AWS Lambda とは クラウド上でサーバを必要とせずに任意のイベントをきっかけに自分で書いたコードを実行できる サービス

Page 16: 活動量計でLambda

今回は Lambda で・・・シンプルにメールを飛ばしてみよう

Page 17: 活動量計でLambda

イメージ

AWSLambda

Page 18: 活動量計でLambda

こんな組み合わせで実現Misfit FLASHiPhone:

Misfit LINK アプリ + IF by IFTTT アプリ AWS:

API Gateway + IAM + Lambda + SNS

Page 19: 活動量計でLambda

Misfit FLASH の設定スマホに『 Misfit LINK 』アプリをインストールMisfit アカウントを作成FLASH を認識させ、モードを「カスタムボタン」ダブルタップに IF ( IFTTT) を指定する

Page 20: 活動量計でLambda

IFTTT の設定スマホに『 IF by IFTTT 』アプリをインストールするIFTTT アカウントを作成『 Misfit 』と『 Maker 』チャンネルにConnect

(IFTTT から各サービスに連携できるよう認証しておく )

Page 21: 活動量計でLambda

Amazon SNS の設定AWS の通知サービスE メールや SMS 、プッシュ通信などをクラウド上から送信できるE メールを送るためのトピックを作成トピックに送信先のアドレスを登録

Page 22: 活動量計でLambda

AWS IAM の設定AWS 上の権限管理の仕組みLambda が Amazon SNS にアクセスできるように、ロール(権限)を設定する

Page 23: 活動量計でLambda

AWS Lambda の設定Lambda ファンクションと呼ばれる関数をプログラミングする。イベントを受け取ったら、 SNS 経由でメールを送るようにコードを書く

Page 24: 活動量計でLambda

# -*- coding: utf-8 -*-from __future__ import print_function

import boto3

TOPIC_NAME = 'FLASH-LINK-SNS'

def lambda_handler(event, context): sns = boto3.resource('sns', 'ap-northeast-1') topic_arn = sns.create_topic(Name=TOPIC_NAME).arn response = sns.Topic(topic_arn).publish( Subject="Misfit FLASH Double Tap", Message="this is message.", ) return response

Page 25: 活動量計でLambda

Amazon API Gateway の設定REST API を簡単に定義できるLambda の呼び出しにも使えるHTTP 経由で作成した Lambda ファンクションを呼び出せるように設定出来上がった API の URL を控えておく

Page 26: 活動量計でLambda

then Maker ApiGateway の URL を設定

IF アプリでレシピを設定 If Misfit Flash button double pressed

Page 27: 活動量計でLambda

最終的にはこういう形

AWSLambda

Amazon API

Gateway

AmazonSNS

Page 28: 活動量計でLambda

FLASH をダブルタップしたら・・・ メールが指定したアドレスに飛んでくれば成功!

Page 29: 活動量計でLambda

FLASH をダブルタップしたら・・・ メールが指定したアドレスに飛んでくれば成功!

OK !

Page 30: 活動量計でLambda

これで AWS をキックできるボタンが完成しました!

Page 31: 活動量計でLambda

今後の課題このままではイマイチ面白みにかける。何に使うか、がやっぱり大事せっかくなので活動量と絡めたいが、タップのイベントでは送れない?

Page 32: 活動量計でLambda

ヒントタップ以外に睡眠・起床、特定のタイミングをトリガーにでき、活動量のデータが送信できるものもある上位製品の SHINE は LINK アプリに対応してないSHINE2 も認識したりしなかったりボタンとして使うなら FLASH一択

Page 33: 活動量計でLambda

以上

Page 34: 活動量計でLambda

ご静聴ありがとうございました