活動量計でlambda
TRANSCRIPT
活動量計=>Lambda2016/03/14 クラウド合同セミナー in 金沢
自己紹介 JAWS-UG 白山 中道システム開発会社に勤務 Twiter :やってません Facebook :やってます
突然ですが
『ボタン (button) 』欲しくありませんか?
『 AWS を操作できるボタン』欲しくありませんか?
作ってみましょう!
用意するもの材料 分量
Misfit FLASH 1 台スマートフォン iPhone/Android お好みで 1 台AWS アカウント 1 つ
Misfit FLASH?
Misfit FLASH? 『活動量計』 実売: \5,000 以下
活動量計って?万歩計と異なり、日常の様々な活動を測定最近は睡眠や心拍数が測れる機種も登場スマホと連動するウェアラブルデバイス型が人気
Misfit FLASH はボタン活動量計なのにタップ、ダブルタップ、トリプルタップ、長押し可連携でスマホのカメラ撮影や音楽再生が可『 IFTTT (イフト)』も割り当てられる
IFTTT (イフト)?WEB サービス同士を連携させる WEB サービスA サービスで△ △したら(トリガー)、自動的に B サービスで○ ○させる(アクション) ことができる
例えば・・・ 明日の朝が雨ならメールを送信する ブログに投稿したら Facebook に同じ内容で投稿する
IFTTT (イフト)?WEB サービス同士を連携させる WEB サービスA サービスで△ △したら(トリガー)、自動的に B サービスで○ ○させる(アクション) ことができる
こんなことができないか?『 FLASH 』をダブルタップしたらiPhone 経由で『 IFTTT 』を使って『 AWS Lambda 』を呼び出して何かをさせる
AWS Lambda とは クラウド上でサーバを必要とせずに任意のイベントをきっかけに自分で書いたコードを実行できる サービス
今回は Lambda で・・・シンプルにメールを飛ばしてみよう
イメージ
AWSLambda
こんな組み合わせで実現Misfit FLASHiPhone:
Misfit LINK アプリ + IF by IFTTT アプリ AWS:
API Gateway + IAM + Lambda + SNS
Misfit FLASH の設定スマホに『 Misfit LINK 』アプリをインストールMisfit アカウントを作成FLASH を認識させ、モードを「カスタムボタン」ダブルタップに IF ( IFTTT) を指定する
IFTTT の設定スマホに『 IF by IFTTT 』アプリをインストールするIFTTT アカウントを作成『 Misfit 』と『 Maker 』チャンネルにConnect
(IFTTT から各サービスに連携できるよう認証しておく )
Amazon SNS の設定AWS の通知サービスE メールや SMS 、プッシュ通信などをクラウド上から送信できるE メールを送るためのトピックを作成トピックに送信先のアドレスを登録
AWS IAM の設定AWS 上の権限管理の仕組みLambda が Amazon SNS にアクセスできるように、ロール(権限)を設定する
AWS Lambda の設定Lambda ファンクションと呼ばれる関数をプログラミングする。イベントを受け取ったら、 SNS 経由でメールを送るようにコードを書く
# -*- 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
Amazon API Gateway の設定REST API を簡単に定義できるLambda の呼び出しにも使えるHTTP 経由で作成した Lambda ファンクションを呼び出せるように設定出来上がった API の URL を控えておく
then Maker ApiGateway の URL を設定
IF アプリでレシピを設定 If Misfit Flash button double pressed
最終的にはこういう形
AWSLambda
Amazon API
Gateway
AmazonSNS
FLASH をダブルタップしたら・・・ メールが指定したアドレスに飛んでくれば成功!
FLASH をダブルタップしたら・・・ メールが指定したアドレスに飛んでくれば成功!
OK !
これで AWS をキックできるボタンが完成しました!
今後の課題このままではイマイチ面白みにかける。何に使うか、がやっぱり大事せっかくなので活動量と絡めたいが、タップのイベントでは送れない?
ヒントタップ以外に睡眠・起床、特定のタイミングをトリガーにでき、活動量のデータが送信できるものもある上位製品の SHINE は LINK アプリに対応してないSHINE2 も認識したりしなかったりボタンとして使うなら FLASH一択
以上
ご静聴ありがとうございました