AWSのAPI Gatewayの使い方¶
動機¶
IoTでAPI使いたいけどパワーないから余計な処理はしたくない。
AWSでAPIをラッピングしてIoT側の処理をできるだけ減らそう。
→ AWS API Gatewayを使ってみる
→ あれ?値渡しどうするんだ?
Lambdaの設定¶
受け取ったものをそのまま返す式を作る
Select blueprintをSkip
Name:
echo,Runtime:Node.jsEdit 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 のコンテキスト