AWS IoT Enterprise Button とは
- ざっくり言うとカスタマイズ可能な Amazon Dash Button です。
- 任意のLambda関数を AWS IoT Enterprise Button をクリックすることで実行できます。
今回やること
- AWS IoT Enterprise Button のセットアップ
- デバイスの登録
- プロジェクトの作成
- AWS IoT Enterprise Button からLambda関数の実行
前提条件
- AWSアカウントは開設済み。
- AWS IoT Enterprise Button は購入済み。
- Wi-Fi環境有り。
- スマホに AWS IoT 1-Clickアプリ(Android版) をインストール済み。
- 東京リージョン(ap-northeast-1)を使用。
- 実行するLambda関数は作成済み。
- 今回はEC2を停止する関数を作成しました。
EC2Stop.py
import boto3
instanceIds = ['i-xxxxxxxxxxxxxxxxx']
def lambda_handler(event, context):
print('EC2を停止します。')
ec2 = boto3.client('ec2')
ec2.stop_instances(InstanceIds=instanceIds)
print('EC2を停止しました。')
手順
AWS IoT Enterprise Button のセットアップ
AWS IoT 1-Click アプリを起動してAWSアカウントにログインします。
デバイス(AWS IoT Enterprise Button)の登録
[デバイスの登録]→[デバイスIDで登録]→デバイスIDのスキャン
※デバイスIDは箱についているバーコードをスキャンします。
デバイスをスキャンできたら、画面の指示にしたがって青い光が点滅するまでボタンを押し続けます。
※途中でWi-Fiの設定画面が出てきたら、設定してください。
デバイスが認識されたら、最後に1回ボタンをクリックします。
※処理が成功したら緑色の光が点灯します。
実行するプロジェクトの作成
AWS IoT 1-Click アプリの[プロジェクト]から追加します。
デバイステンプレートを設定します。
[アクション]で『既存のLambda関数の選択』にすると、選択可能なLambda関数が表示されます。
デバイスプレイスメント(=プロジェクトを実行するデバイス)を作成します。
実行してみる(動画は貼れないのでログで結果を確認)
23:00:03にLambda関数が実行され、EC2が停止。
感想
- 思っていた以上に簡単に自前のLambda関数をAWS IoT Enterprise Buttonから実行することができました!
アイディア次第では結構面白いことができるのではないかなという気がしています。 - もう少し価格(2500円で約2,000回のクリックが可能)が下がってくれるとボタンを増やして遊べそうなのですが・・・。