kintone webhookからAWS API Gateway – Lambdaを実行しレコードの値を渡す
2017年2月のアップデートでkintoneにWebhook機能がリリースされました。
これ個人的にもすごく欲しかったやつなんですね。
Webhook URLをAWS API GatewayにしてLambdaを実行してみてどうやってレコードの値を渡すかやってみました。
目次
Lambdaのコード
とりあえず確認したいだけなのでこんな感じで直書き
設定はランタイムをPython 2.7にしてあとは全てデフォルトです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/usr/bin/env python # -*- coding: utf-8 -*- import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # TODO implement logger.info(event['record']) logger.info(u'タイトル : ' + event['record']['title']['value']) logger.info(u'数値 : ' + event['record']['number']['value']) logger.info(u'本文 : ' + event['record']['body']['value']) logger.info(u'チェックボックス : ' + event['record']['checkbox']['value'][0]) logger.info(u'作成日時 : ' + event['record'][u'作成日時']['value']) |
API Gatewayの設定
メソッドはPOSTで、Lambdaを指定します。
で、全てデフォルトのままで[APIのデプロイ]をします。
kintone テストアプリ
kintoneでテストアプリを作成しました。
Webhook URLでAPI Gatewayで作成したAPIのURLを指定します。
トリガーは「レコードの追加」、「レコードの編集」、「ステータスの更新」すべてにチェックしてます。
※今回の確認ではステータスは使っていません。
保存して[アプリを更新]します。
こんな感じで入力して保存します。
Lambdaのログ確認
値が取れています。
event[‘record’]はこんな感じです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
{ u'body': { u'type': u'MULTI_LINE_TEXT', u'value': u'\u30c6\u30b9\u30c8\u306e\u672c\u6587\n\u6539\u884c\u3057\u3066' }, u'\u66f4\u65b0\u8005': { u'type': u'MODIFIER', u'value': { u'code': u'Administrator', u'name': u'Administrator' } }, u'checkbox': { u'type': u'CHECK_BOX', u'value': [u'sample1'] }, u'\u66f4\u65b0\u65e5\u6642': { u'type': u'UPDATED_TIME', u'value': u'2017-02-18T02:08:00Z' }, u'title': { u'type': u'SINGLE_LINE_TEXT', u'value': u'\u30c6\u30b9\u30c8\u306e\u30bf\u30a4\u30c8\u30eb' }, u'$id': { u'type': u'__ID__', u'value': u'3' }, u'\u4f5c\u6210\u8005': { u'type': u'CREATOR', u'value': { u'code': u'Administrator', u'name': u'Administrator' } }, u'$revision': { u'type': u'__REVISION__', u'value': u'1' }, u'number': { u'type': u'NUMBER', u'value': u'392837' }, u'\u30ec\u30b3\u30fc\u30c9\u756a\u53f7': { u'type': u'RECORD_NUMBER', u'value': u'3' }, u'\u4f5c\u6210\u65e5\u6642': { u'type': u'CREATED_TIME', u'value': u'2017-02-18T02:08:00Z' } } |
webhookでやりやすくなること
後はLambdaの処理で煮るなり焼くなりすればいいのですが、こんなユースケースが考えられるわけで。
- 追加、更新内容をslackやメールで通知
- 連携先データベースへ追加、更新
特に他DBとの連携で多用することが考えられるなと。
これまではマスタとなるデータベースの情報をkintoneへ連携して、kintone側で更新された情報は定期的なバッチで処理したりというパターンが多くて、これだとリアルなやり取りが出来なかったのですね。
レコードの追加、更新時に何か動かそうと思うとカスタマイズでボタンを書かないといけなかったですし。
こうやって標準機能を使って他システムとの連携を容易にしてくれるのは非常にありがたい機能です。
改めてこのアップデートは非常に嬉しいです。
あと、webhookの設定でHeaderとか設定出来るようになるともっと嬉しいです。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS CodeCommit 認証情報ヘルパーをmacOSに設定しました
AWS CLI 認証情報ヘルパーを使用して Linux, macOS, or U …
-
-
kintoneの全フィールド(テーブル含む)の編集を不可にする
小ネタですが kinotneでとにかくフォーム上から全フィールドの編集を無効にし …
-
-
AWS Backupで取得したAMIとスナップショットの削除
個人で使っているAWSリソースの断捨離をしてました。 Cloud9も複数アカウン …
-
-
CodeBuildで執筆原稿データをまとめた
今書いている原稿に対して編集者さんから、「できればで構わないのですが、章ごとにマ …
-
-
VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した
2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …
-
-
Amazon Connectのパスワードどころかユーザー名も忘れたのでEmergency accessした
長い間放置していたAmazon Connect環境にアクセスしようとしたところ、 …
-
-
AWS WAFをSIEM on Amazon OpenSearch Serviceで可視化
SIEM on Amazon OpenSearch Serviceを構築の環境に …
-
-
Former2で既存リソースのCloudFormationテンプレート出力を試してみた
JAWS DAYS 2020の資料確認のお手伝いを少ししてまして、「ゼロからはじ …
-
-
AWS Lambdaで「Process exited before completing request」
AWS lambdaで「Process exited before comple …
-
-
Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する
EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …






