データを返すLambda関数の作成

Lambda の作成を始めます。

CreateLambdaFunction-CreateLambdaFunction-lambda-ja

一から作成で Node.js バージョン 6 で Lambda を作成します。

CreateLambdaFunction-authorFromScratch-ja

Daterange picker の開始日時と終了日時は startend というパラメータで渡されるので、以下のようなコードを作成します。

CreateLambdaFunction-testLambda-ja

exports.handler = (event, context, callback) => {
  const timeunit = (Number(event.end) - Number(event.start))/100
  const category = ['A', 'B', 'C', 'D']
  const result = (function () {
    let arr = []
    for (var i = 100; i >= 1; i--) {
      arr.push({
        category:category[Math.floor(Math.random()*4)],
        value: Math.floor(Math.random()*10),
        ts: Number(event.start) + Math.floor(timeunit*i)
      })
    }
    return arr
  })()
  callback(null, result);
};

次に作成した Lambda 関数につながる API Gateway を作成します。

CreateLambdaFunction-amazonApiGgateway-ja

新しい API で作成します。

CreateLambdaFunction-newApi-ja

新しいリソースを作成します。

CreateLambdaFunction-newResource-ja

適当なパス名を入力して、「API Gateway CORS を有効にする」にチェックを入れます。

CreateLambdaFunction-newResourceChild-ja

リソースを作成したら、GET メソッドを作成します。

CreateLambdaFunction-createGetMethod-ja

メソッドのセットアップをします。作成した Lamnda 関数を選択します(Lamdbaを作成したリージョンを選択しないと出てきません)。

CreateLambdaFunction-setupMethod-ja

作成したらまずは「メソッドレスポンス」を変更します。

CreateLambdaFunction-methodResponse-ja

200 のレスポンスヘッダーに「Access-Control-Allow-Origin」を追加します。

CreateLambdaFunction-200Header-ja

次に「統合レスポンス」を変更します。

CreateLambdaFunction-intergrationResponse-ja

「Access-Control-Allow-Origin」」に '*' を追加します。

CreateLambdaFunction-accessControl-ja

最後に「統合リクエスト」を変更します。

CreateLambdaFunction-intergrationRequest-ja

以下のように「本文マッピングテンプレート」を「application/json」で以下のようなマッピングを作成します。

{
  "start": "$input.params('start')",
  "end": "$input.params('end')"
}

CreateLambdaFunction-bodyMapping-ja

ここまで終わったら最後に「APIのデプロイ」をします。

CreateLambdaFunction-deployApi-ja

適当な名前をつけてデプロイします。

CreateLambdaFunction-deployName-ja

URL の呼び出しの URL に 今回作成したリソース名 /test をつけたものが DataSource で登録する endpoint になります。画像の例だと以下になります。

https://*********.execute-api.ap-northeast-1.amazonaws.com/teststage/test

CreateLambdaFunction-exampleEndpoint-ja

results matching ""

    No results matching ""