メモ > サーバ > サービス: AWS > API Gateway
■API Gateway
※APIを作成できる
※Lambda関数を実行したり、EC2へアクセスしたりなど、自由に定義できる
APIのURLルールは以下のようになる。独自ドメインを割り当てることもできる
https://アプリID.execute-api.リージョン.amazonaws.com/ステージ/リソース
アプリID ... svai50xfmb など、ランダムな文字列が割り当てられる
リージョン ... ap-northeast-1 などのリージョン名
ステージ ... prod, stg, dev, 2, 2.0.1 など。好きなようにいくつでも作成できる
「開発環境用」「本番環境用」など用途に合わせて作成してもいいし、
本番環境でのバージョン管理として 2.0.1 や prod_2.0.1 などバージョンごとにAPIを作成してもいい
API Gateway API のホスト名としてカスタムドメイン名を使用する
http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-custom-domains.html
API Gateway → 今すぐ始める
■APIの作成
「APIの作成」ボタンを押す
新しいAPIの作成: 新しいAPI
API名: my-api-sample
「APIの作成」ボタンを押すと、メソッドの無いAPIが作成される
■メソッドの作成
「アクション」から「メソッドの作成」を選択する
表示されたセレクトボックスから「GET」を選択し、チェックマークをクリックして決定する
続いてレスポンスを決定する
「統合タイプ」で「Mock」を選択し、「保存」をクリックする
「統合レスポンス」をクリックする
表の中にある、右向きの三角をクリックする
「本文マッピングテンプレート」をクリックし、「application/json」をクリックする
エディタ部分に以下を入力し、下にある「保存」をクリックし、さらに上にある青ボタンの「保存」をクリックする
{
"message": "foo"
}
「←メソッドの実行」をクリックしてメソッドの画面に戻り、
「クライアント」にある「テスト」をクリックし、
さらに「メソッドテスト」画面にある「テスト」をクリックする
結果として「レスポンス本文」に、上で設定したJSONが表示されていることを確認する
■デプロイ
画面左上にある「アクション」から「APIのデプロイ」を選択する
表示されたダイアログで「デプロイされるステージ」で「新しいステージ」を選択し、
「ステージ名」に「test」と入力して「デプロイ」ボタンを押す
https://svai50xfmb.execute-api.ap-northeast-1.amazonaws.com/test
のようなURLが発行されるので、クリックしてJSONが表示されればOK
■HTTPのメソッドを作成
APIとして「my-api-sample」を作成し、メソッドとして「GET」を作成する
「統合タイプ」で「HTTP」を選択し、「エンドポイントURL」に実在するURLを入力して「保存」をクリックする
メソッドの実行画面で「テスト」を実行して、設定したURLからのレスポングが表示されていることを確認する
■さらに別のメソッドを作成
「アクション」から「リソースの作成」を選択する
「リソース名」に「sample」と入力する。自動的に「リソースパス」が「/sample」になる
「リソースの作成」をクリックする
以降は先と同様の手順で「test2」というステージ名でデプロイする
https://eqpif1vx08.execute-api.ap-northeast-1.amazonaws.com/test2
https://eqpif1vx08.execute-api.ap-northeast-1.amazonaws.com/test2/sample
ステージ名やURL設計をどうすべきかは要勉強
■Lambda関数のメソッドを作成
「統合タイプ」で「Lambda関数」を選択し、
「Lambdaリージョン」で「ap-northeast-1」を選択し、
「Lambda関数」で「hello-world」を入力する(既存の関数)
「Lambda関数に権限を追加する」ダイアログが表示されるので、「OK」をクリックする
Lambda関数に引数を渡す方法は要勉強
■キャッシュ
APIを選択 → ステージ → ステージを選択 → 設定 → APIキャッシュを有効化
でキャッシュを利用できるみたい。要検証