AWSのAPI Gatewayの使い方¶
動機¶
IoTでAPI使いたいけどパワーないから余計な処理はしたくない。
AWSでAPIをラッピングしてIoT側の処理をできるだけ減らそう。
→ AWS API Gatewayを使ってみる
→ あれ?値渡しどうするんだ?
Lambdaの設定¶
受け取ったものをそのまま返す式を作る
Select blueprintをSkip
Name:
echo
,Runtime:Node.js
Edit Code inline
exports.handler = function(event, context) { console.log(JSON.stringify({event: event, context: context}, null, 2)); context.succeed({event: event}); };
APIの作成¶
パラメータの受け渡し(GET)¶
APIの作成
- Create API
- Create Resourceで
echo
を追加 - Create MethodでGETメソッドの追加
Method Requestの設定
- URL Query String Parametersを開く
- nameに
param
を追加
Integration Requestの設定
Integration typeはLambda functionで
echo
を設定Mapping Templateに
application/json
で以下を設定{ "param": "$input.params('param')" }
試してみる
- https://xxxx.execute-api.region.amazonaws.com/stageName/echo?param=123
{"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式の結果を返す
- パラメータを渡す
その他¶
- API POST のコンテキスト