本記事は、TENKit の応用的な利用について説明いたします。
事前に基礎編「 TENKitとGoogleスプレッドシートの連携(簡単記録編)」をご確認いただきますようお願いします。
TENKit (テンキット)は「テンキー」を「IoT」化するキットです。
TENKit では、テンキーで入力された「数字」と、Googleスプレッドシートなどクラウド上のサービスを簡単に結びつけることができます。
ここでは、TENKit の応用的な利用として、AWS Lambdaと連携する方法について説明します。
本手順をマスターすると、TENKit をデータベースや業務システムと連携するなど、より高度に利用することができるようになります。
設定前の準備
AWS Lambdaとの連携を設定する前に、以下の項目を確認してください。
1. 基礎編をマスター
事前に基礎編「 TENKitとGoogleスプレッドシートの連携(簡単記録編)」をご確認いただき、TENKitの基本的な利用方法についてマスターしていただくようお願いします。
2. AWSのアカウントを用意
AWS のアカウントをご準備ください。
本手順では、アジアパシフィック(東京)リージョンを利用します。
また「Lambda」に加えて「API Gateway」サービスを利用しますので、事前に概要等をご確認ください。
連携の設定
連携の設定は、大きく以下のステップで行います。
- Lambda関数の作成:Webhook URLが呼び出された際の動作を定義
- API Gatewayの設定:Webhook URLの作成
- Lambda関数の設定:API Gatewayとの紐付け
- TENKitに作成したWebhook URLを登録
Lambda関数の作成
まず最初に、Lambda関数を作成して、Webhook URLが呼び出された際の動作を定義します。
AWS のコンソールにアクセスし、Lambdaの管理画面を開きます。
「関数の作成」より、以下のように情報を入力して、新しいLambda関数を作成します。
- 関数名 : TENKit
- ランタイム : Node 10.x
続いて、「関数コード」部分に以下のコードを記述して保存します。
exports.handler = async (event) => {
var body = JSON.parse(event.body);
var message = body.message;
var created_at = body.created_at;
// ログに表示
console.log(message);
console.log(created_at);
return {
"isBase64Encoded" : false,
"statusCode" : 200,
"headers" : {},
"body" : "welcome to tenkit!"
}
};
上記は、呼び出し元(TENKit --> API Gateway --> Lambda)からの情報をログに表示する最もシンプルなコードになります。
API Gatewayの設定
次に、AWS のコンソールより、API Gateway の管理画面を開きます。
初めてアクセスした場合は「今すぐ始める」ボタンを押してください。
API作成画面に遷移するので、以下のように入力し、「APIの作成」ボタンをクリックします。
これにより、APIのベースとなる部分が作成されました。
次に、「アクション」ボタンより「メソッドの作成」を選択して、HTTP POSTメソッドを追加します。
プルダウンで「POST」を選択し、下記のように各項目を設定して「保存」ボタンをクリックします。
Lambda関数「TENKit」が無いの警告が表示されます。
本関数は次のステップで作成します。
- 統合タイプ : Lambda
- Lambda プロキシ統合の使用 : 有効
- Lambda リージョン : ap-northeast-1
- Lambda 関数 : TENKit
- デフォルトタイムアウトの使用 : 有効
最後に、本APIをデプロイします。
「アクション」より「APIのデプロイ」を選択します。
デプロイされるステージに「新しいステージ」を選択し、ステージ名に「tenkit」と入力して「デプロイ」します。
成功すると以下のように専用のAPIが表示されます。
これがTENKitに登録するWebhook URLになるので、コピーして保管してください。
Lambda関数の設定
再びLambda管理画面に移動し、作成した「TENKit」関数の設定画面に移動します。
上部「Designer」部分で「トリガーを追加」ボタンをクリックし「API Gateway」を追加します。
トリガーとなるAPI Gatewayの詳細について、以下のように設定します。
- API : TENKit
- デプロイされるステージ : tenkit
- セキュリティ : オープン
「Desiner」部分に「API Gateway」が追加されました。
これにより、先ほど作成したAPIが呼び出された際に、このLambda関数が実行されるようになりました。
TENKitへの登録と実行
最後に、API Gatewayで作成したWebhook URLを下記よりTENKitに登録します。
TENKitに接続されたテンキーを入力し、Lambdaの実行ログ(CloudWatch)に入力が表示されていれば成功です。
最後に
本手順では、TENKit の応用的な利用として、AWS Lambdaと連携する方法について説明しました。
これにより、TENKit をデータベースや業務システムと連携するなど、より高度に利用することができるようになります。
どのように利用するはかアイデア次第です。面白い使い方を是非発見してください。