LoginSignup
0
1

More than 3 years have passed since last update.

AWS Cloud9 で 作成した AWS Lambda 関数で kintone Webhook 通知を受信する

Posted at

AWS Cloud9 で作成した Lambda 関数に、kintone の Webhook 通知を投げて結果を確認してみます。

AWS Cloud9 であらかじめ作成した Lambda関数(blue print)を元に進めます。
ここまでの作業は AWS Cloud9 で AWS Lambda を開発する環境を構築してみる を参考にしてください。

前提条件

  • Cloud9 環境作成済み
  • CodeCommit 環境作成済み
  • API Gateway 環境作成済み
  • AWS Lambda 環境作成済み

kintone Webhook の設定

作成した blue print そのままのコードの Lambda関数に、Webhook通知を投げてみます。

Webhook 通知の設定

アプリの設定を変更する → 設定タブ → Webhook を選択します。
スクリーンショット 2019-10-19 16.32.37.png

Webhookの設定値を入力します。
Webhook URL には、作成した Lambda関数に紐付けた API Gateway の エンドポイントを入力します。
スクリーンショット 2019-10-19 16.33.44.png

ステータスの更新通知を有効にしたら、プロセス管理を有効化しておきます。
スクリーンショット 2019-10-19 16.35.02.png

アプリを更新します。

Webhook 通知のテスト

レコードの追加、編集、削除、コメントの書き込み、ステータスの更新を順番にテストしてみます。

レコードの追加

アプリにてレコードを新規作成して保存します。
スクリーンショット 2019-10-19 16.42.18.png

kintone Webhookログの確認

アプリの設定→Webhook→Webhookログでログを確認します。
スクリーンショット 2019-10-19 16.53.44.png

監査ログも確認します。
スクリーンショット 2019-10-19 16.58.51.png

Cloud Watch ログの確認

AWS Cloud Watch ログを確認します。
スクリーンショット 2019-10-19 17.20.51.png
kintone のレコードが確認できます。

Lambda関数

index.js
"use strict";
let sc; // Status code
let result = "";
exports.handler = function(event, context, callback) {
    console.log(event);
    const kintonePost = JSON.parse(event.body);
    console.log(kintonePost);
    sc = 200;
    result = "kintone POST success!";
    const response = {
      statusCode: sc,
      headers: { "Content-type": "application/json" },
      body: JSON.stringify( result )
    };
   callback(null, response);
};

kintone Webhook で受信した POST リクエストをそのままログに出力しています。
callback で kintone に ステータスコードを返しています。

API Gateway で 取得した kintone の Webhook リクエストは、ハンドラ関数の event 変数に入ってきます。

kintone record の中身は event.body に入っているので、JSON.parse して JavaScript のオブジェクトに変換しています。

レコードの中身にアクセスするには、例えば [$id] の場合は下記になります。

JSON.parse(record.body).kintonePost.record['$id'].value


関連リンク

AWS 関連

Node.js 関連


0
1
0

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
  3. You can use dark theme
What you can do with signing up
0
1