6. AWS Lambdaの設定

6.1. コードの修正

以下のサイトからコードをダウンロードします。

https://github.com/ToshiEna/kintone-aws-iot-handson-2015/raw/master/download/sample.zip

zipをunzipなどで解凍します。 index.jsのノートパッドなどのツールで開きます。

 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
  var moment = require('moment');
  var APP_ID = '<<アプリID>>';
  var SUBDOMAIN = '<<サブドメイン>>';

  exports.handler = function(event, context) {
    var dueDate = moment().add(1, 'd').format('YYYY-MM-DD');
    var acceptNum = moment();
    console.log(dueDate);


      record = {
          '受付番号': { value: acceptNum },
          'タイトル': { value: event.title },
          'インシデント': { value: 'アラート' },
          '作業期限': { type: 'DATE', value: dueDate },
          '内容': { value: event.value }
      };

      request({
          method: 'POST',
          url: "https://" + SUBDOMAIN + "/k/v1/record.json",
          headers: {
              'X-Cybozu-Authorization': '<<Auth情報>>',
              'Authorization': 'Basic <<Auth情報>>',
              'Content-Type': 'application/json'
          },
          json: {
              'app': APP_ID,
              'record': record
          }
      }, function(err, response, body) {
          if (err) {
              consle.log("err : " + util.inspect(err));
          }
          if (response.statusCode === 200) {
              console.log('RESULT: ');
              context.succeed();
          } else {
              console.log("response error: " + response.statusCode + ", " + err);
              console.log("response error: " + body.message);
          }
      });
  };

アプリIDアプリ、サブドメイン(cybozu.comまで含む)、Auth情報(同一のデータ)を編集して、保存します。

編集後、AWS Lambdaにコードをアップロードするためにサイドzipで圧縮します。

$ zip -r index.zip index.js node_module

6.2. AWS Lambdaの設定

AWS Lambdaのコンソールをサービス一覧から選択し、起動します。 改めて東京リージョンであることを確認してください。 “Create a Lambda Function”を選択します。

_images/6-lambda-create-lambda.png

Select blueprintは、スキップします。

_images/6-lambda-skip-blueprint.png

Configure Function画面で名前の入力などを行います。Uploadボタンをクリックし、上記で作成したZipファイルを選択します。 RoleのリストからBasic execution roleを選択します。

_images/6-lambda-conf-func-role.png

ロールを作成する画面に遷移するので、内容を確認して、”許可”ボタンをクリックします。

_images/6-lambda-create-role.png

画面が元のConfiguration Functionに戻り、Timeoutを59秒にして、”Next”ボタンをクリックします。

_images/6-lambda-conf-func-param.png

確認画面で確認して、”Create Function”をクリックします。

_images/6-lambda-confirm.png

_images/6-lambda-done.png

6.3. AWS IoTのルール設定

Lambdaの登録が終わったので、先ほどのSNSと同様の手段で、Lambdaを設定します。 手順は、SNSとほぼ同等で、Lambdaを選択する部分のみことなります。

_images/6-iot-lambda-rule.png

これで準備は整いました。 SNSの時と同様10秒単位でセンサーデータがAWS IoTにPublishされてます。 設定がうまく行っていれば、kintoneの障害対応アプリ内にデータが蓄積されます。