AWS IoT エンタープライズボタン トリガーを作ってみた

Avatar
dstn

皆さんこんにちは、営業の築山です。つい先日発売された AWS IoT エンタープライズボタン と DataSpider を使って遊んでみましたので紹介させていただいたいと思います。

 

AWS IoT エンタープライズボタン とは

ワンプッシュでお気に入りの商品を簡単に注文できるということで話題になった Amazon Dash を汎用的に使えるようにしたものです。 仕組みとしては、ボタンを押したら Lambda 関数が呼ばれるという非常にシンプルなものですが様々な用途が想定できると思います。

20180518090512.jpg

実現したいこと

このボタンを使って実現したいのは「ボタンを押したら、DataSpider のスクリプト(連携処理)が呼び出される」という仕組みです。

DataSpider にはトリガーという「スクリプトを自動起動する」ための機能があり、代表的なものに

  • スケジュールトリガー (定時実行、インターバル実行)
  • HTTP トリガー    (HTTP アクセスがあった際に実行)
  • ScriptRunner     (exe ファイルを叩いて実行)

などがあります。

ただし、これらの機能は「Web 画面を作る必要がある(HTTP トリガー)」「バッチファイルなどで起動する必要がある(ScriptRunner)」などお手軽では無く(とは言っても、それほど手間でもありませんが)、「スクリプトを簡単に実行する仕組みが欲しい」と思うこともあります。

そこで今回 AWS IoT エンタープライズボタン の発売を見てひと目で「おっ、これは DataSpider のスクリプト起動に使えそうだ!」と思い、早速試してみました。

完成イメージ

ボタンが押されたら Lambda 関数が呼ばれ、Lambda から DataSpider の HTTP トリガーを呼び出します。 DataSpider のスクリプトはなんでも良いのですが、動いた結果をわかりやすくするために kintone に現在日時とメッセージを書き込む処理にしました。

20180519083823.jpg

手順

大枠の流れは以下の通りです。

  1. AWS IoT エンタープライズ ボタンの購入
  2. kintone アプリの作成
  3. DataSpider スクリプトの作成
  4. AWS Lambda の設定
  5. AWS IoT エンタープライズ ボタンの設定(スマホアプリ)

では順を追って説明します。

AWS IoT エンタープライズ ボタンの購入

こちらから 2,500円で購入できます。Prime 会員であっても届くまで 半日~1 日はかかるので、その間に他の作業を行います。

kintone アプリの作成

あまりにシンプルすぎて説明も要らないぐらいですが、kintone アプリは「文字列(1行)」を 1 つ置くだけです。

20180519084009.jpg

DataSpider スクリプトの作成

作成する処理は、現在日時 + "特定のメッセージ" を kintone に追加するというシンプルなもので、設定内容は以下の通りです。

20180519094017.jpg

20180519093913.jpg

また、作った処理は Lambda から HTTP で呼び出すので、HTTP トリガーの設定をしておきます。 ここで表示されている(黒塗りされている)URL を Lambda で呼び出します。

20180519094106.jpg

AWS Lambda の設定

今回一番の壁がここでした。私自身プログラムは殆ど書けないのですが、 Lambda は Node.js や Phython でコードを書く必要があります。

ただ、やりたいのは特定の URL (HTTPトリガー)を呼び出すだけの簡単な処理なので、Qiita の記事などを参考にさせていただき、以下の通りの処理を作成します。

参考リンク(Qiita:Lambdaからhttpリクエスト)

exports.handler = function(event, context) {
    console.log('value1 = ' + event.key1);
    http.get("https://xxx.xxx.xxx/", function(res) {
        console.log("Got response: " + res.statusCode);
        res.on("data", function(chunk) {
            context.done(null, chunk);
        });
    }).on('error', function(e) {
        context.done('error', e);
    });
};
 

AWS IoT エンタープライズ ボタンの設定(スマホアプリ)

色々と作業をしている間に AWS IoT エンタープライズボタンが家に届きました。スマホアプリで「AWS IOT」と検索すると専用アプリが見つかりますので、そちらをダウンロードして設定をしていきます。

20180519095248.jpg

設定自体は非常に簡単で、端末のバーコードを読み取って Wi-Fi の設定を行うと端末(ボタン)とアプリの紐付けができます。

20180519093240.png

あとは、アプリ上で端末にプロジェクトというものを割り当てて行くとあっという間にボタンを押すと指定した Lambda 関数を呼べるようになります。1 プロジェクト = 1 Lambda 関数 になっているので、使い方としては複数のプロジェクトを作成しておいて、適宜プロジェクトを切り替えてボタンを押す、という使い方になると思います。

アプリの設定は数分で終わりました。最後にデバイスを「有効」にするのをお忘れなく。

20180519093038.png

では、実際に動かしてみましょう。(ポチッ)

20180519094324.jpg

このように kintone にしっかりレコードが保存されましたね。

また、今回は Lambda 関数を呼ぶ設定にしましたが、設定で「Send EMail」と「Send SMS」も用意されているので、メールや SMS を送るだけなら Lambda を使用しなくても良いのでより簡単です。

最後に

この内容を弊社の情報システム部に話したら「ぜひ使ってみたい!」ということだったので、弊社内の実業務で使われる日も遠くないかもしれません。皆様も「こんな使い方ができそう!」というご意見がありましたら、是非教えていただけますと幸いです。

コメント

ログインしてコメントを残してください。

Powered by Zendesk