AWS APIGatewayを設定する方法について記載
(単純にアクセスするとLambda経由でJSONを返すものになります。)
1.APIの作成
AWSコンソールのサービスから「API」を開いて「APIの作成」ボタンをクリック
API名を記載して「APIの作成」をクリック
(エンドポイントはとりあえず「リージョン」を設定)
2.リソースの作成
作成したAPIを開いて、アクションから「リソースの作成」をクリック
リソース名を指定(エンドポイントURLの最後に/でつけられる名前になります。)して「リソースを作成」をクリック
3.メソッドの作成
リソースのアクション > メソッドを作成 をクリック
タブからGETを選択、右のチェックをクリック
統合タイプで「Lambda関数」を選択、
LambdaリージョンでLambda関数を作成しているリージョンを選択、
作成したLambda関数名を指定、「保存」をクリック
(Lambda関数は何かJSONを返すものを作成しておく。)
Lambda関数に権限を付与する画面が出るので「OK」をクリック
APIの一連の流れができるので、「テスト」をクリック
メソッドテストが開くので「テスト」クリックする。
想定しているJSONファイルが帰って来ればテストは成功
4.ステージへデプロイ
左メニュー > リソース > アクション > APIのデプロイを選択
デプロイされるステージに「新しいステージを」選択、ステージ名を入力して「デプロイ」をクリック
(初回に左メニュー > ステージから作成することができないっぽい?)
左メニュー > ステージ を選択すると、作成したリソースが表示されている、GETをクリックするとエンドポイント(URL)が確認できる。
クリックしてJSONがかえって来れば正常。
4.API Keyの追加
このままだとアクセスし放題なのでAPI Keyを追加する。
左メニュー > APIキー > アクション から「APIキーの作成」をクリック
名前を指定して、自動生成のままで、「保存」をクリック
APIキーが作成される、作成したキーをクリックすると、
情報が表示される。APIキーを確認するには中央「APIキー」横の「表示」をクリックする。
左メニュー > 使用量プラン > 「作成」ボタンをクリック
使用量プラン名を指定、スロットリングはアクセス数の制限を行うための数値を指定、「次へ」をクリック。(バースト5000とか、各自の状況に合わせてください)
「APIステージの追加」をクリックして、作成したAPI名、ステージ名を設定、
「次へ」をクリック
「APIキーを使用量プランに追加」をクリック、先ほど作成したAPIキー名を指定、横のチェックマークをクリック。
これで、APIキーが設定できたので、API側のAPIキーの設定を変更します。
左メニュー > API > から作成したAPIを選択
GETをクリックするとAPIのフローがヒュオジされるので、「メソッドリクエスト」をクリック
「API キーの必要性」をtrueに変更、横のチェックをクリック
アクションから「APIのデプロイ」をクリック、先ほど作ったステージにデプロイ
これで、APIキーを付与しないとアクセスできなくなります。
APIキー付きでアクセスできるか確認する際は、ターミナルから以下のように--headerにx-api-keyを付与して行なってください。
curl https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/prod/ --header 'x-api-key:APIキー'
以上
参考