動作環境/前提条件/参考 †
kintoneアプリ作成 †
- kintoneアプリをはじめから作成しフォームの編集より任意のフィールドを配置
- テストデータ(レコード)登録
Lambda function作成 †
- [Create a Lambda function]をクリックしSelect blueprintのページへ遷移
- [Skip]をクリックしConfigure functionページへ遷移
Name: kintone_getRecords_test
Runtime: Node.js 4.3
Conde entry type: Edit code inline
- Lambda function codeにkintone_lambda.jsを張り付け
- DOMAIN, APP_ID, LGIN_NAME, PASSWORD(5行目〜8行目)を連携先のkintone環境の値に変更
※本サンプルでは'https'モジュールを利用しているが'request'モジュールの方が良い。
'request'モジュールを利用する場合は事前にnpm installでモジュールをダウンロードしてLambda関数デプロイパッケージを作成する必要あり。
Role: Basic execution role
- Advanced settingsは初期値
- [Next]をクリック
- [Create function]をクリック
- [Test]をクリックしSample event templateは初期値(Hello World)のままで[Save and test]をクリック
- Execution result: succeededとなりログにkintoneアプリのレコードデータ(JSON)が取得されていることを確認
API Gateway設定 †
APIの作成 †
- [APIの作成]をクリックし"New API"を選択
API名: kintone_getRecords_test
- [APIの作成]をクリック
- APIs >> Resources >> Actions >> Create Method >> GETを選択
統合タイプ: Lambda関数
Lambdaリージョン: ap-northeast-1
Lambda関数: ap-northeast-1
- [保存]をクリック
- APIs >> Resources >> Actions >> "APIのデプロイ"を選択
デプロイされるステージ: [New Stage]
ステージ名: kintone_getRecords_test_api
- [デプロイ]をクリック
- エンドポイント(URL)が生成されるのでクリックしてブラウザ上にkintoneアプリのレコードデータ(JSON)が表示されていることを確認
文字化け対応 †
- APIs >> Resources >> GET >> "メソッドレスポンス"を選択
- HTTPのステータス >> "200のレスポンスモデル"を編集し下記に変更
application/json;charset=UTF-8
- 再度デプロイしブラウザ上の文字化けが修正されていることを確認
APIキャッシュの有効化(オプション) †
- APIs >> Stages >> APIを選択
- "API キャッシュを有効化"にチェック
キャッシュキャパシティー: 0.5GB
Cache time-to-live (TTL): 600
- [変更を保存]をクリック
- "キャッシュのステータス"が"CREATE_IN_PROGRESS"->"AVAILABLE"に変わったら有効化完了
※キャッシュの有効化に5分程度かかった(キャッシュの無効化は即時反映される)。
※キャッシュキャパシティーと時間によって課金されるため注意が必要
- kintoneのアプリ管理よりアプリ毎のAPIリクエスト数が確認できるためキャッシュされているか確認
※キャッシュされていればAPIリクエスト数がカウントアップされない。
- [Flush entire cache]を選択すると全キャッシュクリア
- キャッシュのステータスが"FLUSH_IN_PROGRESS"->"AVAILABLE"に変わったらキャッシュクリア完了
※キャッシュクリアに3分程度かかった。
CloudWatchメトリクス有効化(オプション) †
- APIs >> Stages >> APIを選択
- "CloudWatchログを有効化"と"CloudWatchメトリックすを有効化"にチェック
※CloudWatch上でキャッシュヒット率等が確認できる
CORS有効化(オプション) †
- APIx >> Resources >> Actions >> Enable CORSにて[Enable CORS and replace existing CORS headers]をクリック
|