AWSのAPI Gatewayの使い方 ======================== 動機 ---- | IoTでAPI使いたいけどパワーないから余計な処理はしたくない。 | AWSでAPIをラッピングしてIoT側の処理をできるだけ減らそう。 | → AWS API Gatewayを使ってみる | → あれ?値渡しどうするんだ? Lambdaの設定 ------------ 1. 受け取ったものをそのまま返す式を作る 2. Select blueprintをSkip 3. Name:\ ``echo``,Runtime:\ ``Node.js`` 4. Edit Code inline :: exports.handler = function(event, context) { console.log(JSON.stringify({event: event, context: context}, null, 2)); context.succeed({event: event}); }; APIの作成 --------- パラメータの受け渡し(GET) ~~~~~~~~~~~~~~~~~~~~~~~~~ 1. APIの作成 1. Create API 2. Create Resourceで\ ``echo``\ を追加 3. Create MethodでGETメソッドの追加 2. Method Requestの設定 1. URL Query String Parametersを開く 2. nameに\ ``param``\ を追加 3. Integration Requestの設定 1. Integration typeはLambda functionで\ ``echo``\ を設定 2. Mapping Templateに\ ``application/json``\ で以下を設定 :: { "param": "$input.params('param')" } 4. 試してみる 1. https://xxxx.execute-api.region.amazonaws.com/stageName/echo?param=123 2. ``{"event":{"param":"123"}}``\ が表示されれば成功 パラメータの受け渡し例 ~~~~~~~~~~~~~~~~~~~~~~ - ``$input.params()`` - クエリ全体を取得 - ``$input.params('a')`` - クエリのパラメータaを取得 - ``$input.json(x)`` - request bodyのxをjson形式で返す - ``$input.json($)``\ で全体を取れる - ``$input.path(x)`` - request bodyのxを返す 参考先 ------ - AWS-APIを使ってLambda式の結果を返す - http://dev.classmethod.jp/cloud/aws/api-gateway/ - パラメータを渡す - http://qiita.com/yuyakato/items/89fcef9746afbf48977a その他 ------ - API POST のコンテキスト - http://qiita.com/durosasaki/items/83af014aa85a0448770e