サーバレスでweb apiを構築できるLambdaとAPIGateway。
これをミニマムな構成で構築してみる

とはいえ認証もなにもない状態だとアレなのでAPI keyを発行した認証は実装する

Lambda

aws consoleからLambdaに入り、Node.jsの6.10を選択、Blank Functionを選択

今回はNodeを選択しているけど、もちろんPythonでもいい

Kobito.XZSrgA.png

ひとまずトリガーはとりあえず作らないで次へ

Kobito.FgA1X1.png

Lambdaの名前を入力し、コードを入力する。
今回はコードはデフォルトのままで進める。

Kobito.R1y4r2.png

スクロールするとさらに設定画面が出てくる
ロール割当だけすれば最小限OK

Kobito.1G5h7o.png

これでLambda関数の作成はOK

API Gateway

APIを定義

aws consoleからAPI gatewayを開く

新しいAPI を選択し、適当な名前を入力

Kobito.46WF6B.png

リソース -> アクション -> メソッドの作成を選択

Kobito.hdwTH2.png

メソッドにPOSTを追加し、Lambda関数を追加する

Kobito.qTpcmT.png

なんかフローみたいのが出てくる。

メソッドリクエストを選択

Kobito.HPvhHq.png

APIキーの必要性にtrueを設定

Kobito.ZD35fr.png

アクション -> デプロイを選択

デプロイするステージを選択(なければ作る)してデプロイ実行

Kobito.tepBZg.png

APIキーの作成

APIキーを選択 -> アクション -> APIキーの作成

Kobito.ilVIPU.png

APIキーの名前、説明を入力。
対象のAPIとステージも一緒に選択。
ここでランダムな文字列のAPIキーが発行されるのでメモしておく(API実行時に必要になる)

Kobito.Xsx7CS.png

使用プランの作成

使用プランを選択 -> 作成を選択

適当な値を入力して使用プランを作成

Kobito.0kronG.png

使用プランにAPIキーを割り当てる
作成したAPIキーをセットする

Kobito.3S94mx.png

実行テスト

postman等からAPIのURLを叩く

headerに x-api-key という名前でAPIkeyを設定すると認証が通り、実行される(はず)

Kobito.IGiR2w.png