サーバレスでweb apiを構築できるLambdaとAPIGateway。
これをミニマムな構成で構築してみる
とはいえ認証もなにもない状態だとアレなのでAPI keyを発行した認証は実装する
Lambda
aws consoleからLambdaに入り、Node.jsの6.10を選択、Blank Functionを選択
今回はNodeを選択しているけど、もちろんPythonでもいい
ひとまずトリガーはとりあえず作らないで次へ
Lambdaの名前を入力し、コードを入力する。
今回はコードはデフォルトのままで進める。
スクロールするとさらに設定画面が出てくる
ロール割当だけすれば最小限OK
これでLambda関数の作成はOK
API Gateway
APIを定義
aws consoleからAPI gatewayを開く
新しいAPI
を選択し、適当な名前を入力
リソース -> アクション -> メソッドの作成を選択
メソッドにPOSTを追加し、Lambda関数を追加する
なんかフローみたいのが出てくる。
メソッドリクエストを選択
APIキーの必要性にtrueを設定
アクション -> デプロイを選択
デプロイするステージを選択(なければ作る)してデプロイ実行
APIキーの作成
APIキーを選択 -> アクション -> APIキーの作成
APIキーの名前、説明を入力。
対象のAPIとステージも一緒に選択。
ここでランダムな文字列のAPIキーが発行されるのでメモしておく(API実行時に必要になる)
使用プランの作成
使用プランを選択 -> 作成を選択
適当な値を入力して使用プランを作成
使用プランにAPIキーを割り当てる
作成したAPIキーをセットする
実行テスト
postman等からAPIのURLを叩く
headerに x-api-key
という名前でAPIkeyを設定すると認証が通り、実行される(はず)