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認定クラウドプラクティショナー 改訂第2版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
AWS Summit 2016 Tokyoに参加してきました (Day3)
飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …
-
API GatewayをトリガーにしたときのLambdaリソースベースポリシー
先日、SwaggerからAPI Gatewayを作ったときに、API Gatew …
-
AWS Storage Gatewayボリュームゲートウェイを作成してWindowsから使用
ボリュームゲートウェイの作成 Storage Gateway作成メニューからボリ …
-
S3をトリガーにしたときのLambdaのリソースベースポリシー
LambdaのトリガーでS3を設定したとき、自動的にLambdaのリソースベース …
-
Amazon CloudWatch Anomaly Detectionをダッシュボードに設定
Amazon CloudWatch クロスリージョンクロスアカウントダッシュボー …
-
AWS EC2 インスタンスステータスのチェックで失敗 原因はPHP-FPMのOOM-KILLER
先週に引き続きEC2のインスタンスステータスチェックで失敗 再起動するも失敗する …
-
IAMアクセス許可の境界でIAMロールの権限を制御する
IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAM …
-
「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってきました
「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってき …
-
EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか
「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …
-
Intel 82599 VF インターフェイスで拡張ネットワーキングが有効なEC2インスタンスで帯域幅を確認してみました
拡張ネットワーキングが有効なEC2インスタンスとそうではないインスタンスの2セッ …