LoginSignup
1

More than 3 years have passed since last update.

posted at

TENKitとAWS Lambdaの連携

本記事は、TENKit の応用的な利用について説明いたします。
事前に基礎編「 TENKitとGoogleスプレッドシートの連携(簡単記録編)」をご確認いただきますようお願いします。

TENKit (テンキット)は「テンキー」を「IoT」化するキットです。
TENKit では、テンキーで入力された「数字」と、Googleスプレッドシートなどクラウド上のサービスを簡単に結びつけることができます。

ここでは、TENKit の応用的な利用として、AWS Lambdaと連携する方法について説明します。
スクリーンショット 2019-09-13 9.49.49.png
本手順をマスターすると、TENKit をデータベースや業務システムと連携するなど、より高度に利用することができるようになります。

設定前の準備

AWS Lambdaとの連携を設定する前に、以下の項目を確認してください。

1. 基礎編をマスター

事前に基礎編「 TENKitとGoogleスプレッドシートの連携(簡単記録編)」をご確認いただき、TENKitの基本的な利用方法についてマスターしていただくようお願いします。

2. AWSのアカウントを用意

AWS のアカウントをご準備ください。
本手順では、アジアパシフィック(東京)リージョンを利用します。
また「Lambda」に加えて「API Gateway」サービスを利用しますので、事前に概要等をご確認ください。

連携の設定

連携の設定は、大きく以下のステップで行います。

  1. Lambda関数の作成:Webhook URLが呼び出された際の動作を定義
  2. API Gatewayの設定:Webhook URLの作成
  3. Lambda関数の設定:API Gatewayとの紐付け
  4. TENKitに作成したWebhook URLを登録

Lambda関数の作成

まず最初に、Lambda関数を作成して、Webhook URLが呼び出された際の動作を定義します。
AWS のコンソールにアクセスし、Lambdaの管理画面を開きます。
「関数の作成」より、以下のように情報を入力して、新しいLambda関数を作成します。

  • 関数名 : TENKit
  • ランタイム : Node 10.x

スクリーンショット 2019-09-13 11.13.04.png

続いて、「関数コード」部分に以下のコードを記述して保存します。

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の作成」ボタンをクリックします。

  • プロトコルを選択する : Rest
  • 新しい API の作成 : 新しいAPI
  • 名前と説明
    • API 名 : TENKit
    • 説明 : TENKit
    • エンドポイントタイプ : リージョン スクリーンショット 2019-09-13 10.07.39.png

これにより、APIのベースとなる部分が作成されました。
次に、「アクション」ボタンより「メソッドの作成」を選択して、HTTP POSTメソッドを追加します。
スクリーンショット 2019-09-13 10.14.13.png
プルダウンで「POST」を選択し、下記のように各項目を設定して「保存」ボタンをクリックします。
Lambda関数「TENKit」が無いの警告が表示されます。
本関数は次のステップで作成します。

  • 統合タイプ : Lambda
  • Lambda プロキシ統合の使用 : 有効
  • Lambda リージョン : ap-northeast-1
  • Lambda 関数 : TENKit
  • デフォルトタイムアウトの使用 : 有効

スクリーンショット 2019-09-13 10.19.25.png

最後に、本APIをデプロイします。
「アクション」より「APIのデプロイ」を選択します。
スクリーンショット 2019-09-13 10.22.46.png
デプロイされるステージに「新しいステージ」を選択し、ステージ名に「tenkit」と入力して「デプロイ」します。
スクリーンショット 2019-09-13 10.24.43.png
成功すると以下のように専用のAPIが表示されます。
これがTENKitに登録するWebhook URLになるので、コピーして保管してください。
スクリーンショット 2019-09-13 10.25.15.png

Lambda関数の設定

再びLambda管理画面に移動し、作成した「TENKit」関数の設定画面に移動します。
上部「Designer」部分で「トリガーを追加」ボタンをクリックし「API Gateway」を追加します。

トリガーとなるAPI Gatewayの詳細について、以下のように設定します。

  • API : TENKit
  • デプロイされるステージ : tenkit
  • セキュリティ : オープン

スクリーンショット 2019-09-13 10.40.06.png
「Desiner」部分に「API Gateway」が追加されました。
スクリーンショット 2019-09-13 10.44.00.png
これにより、先ほど作成したAPIが呼び出された際に、このLambda関数が実行されるようになりました。

TENKitへの登録と実行

最後に、API Gatewayで作成したWebhook URLを下記よりTENKitに登録します。
スクリーンショット 2019-09-10 17.45.55.png
TENKitに接続されたテンキーを入力し、Lambdaの実行ログ(CloudWatch)に入力が表示されていれば成功です。

最後に

本手順では、TENKit の応用的な利用として、AWS Lambdaと連携する方法について説明しました。
これにより、TENKit をデータベースや業務システムと連携するなど、より高度に利用することができるようになります。

どのように利用するはかアイデア次第です。面白い使い方を是非発見してください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1