メモ > サーバ > サービス: AWS > API Gateway
API Gateway
※APIを作成できる。
※Lambda関数を実行したり、EC2へアクセスしたりなど、自由に定義できる。
Amazon API Gateway は何をしてるのか | DevelopersIO
https://dev.classmethod.jp/articles/what-does-amazon-api-gateway-do/
Amazon API Gatewayとは?基本をわかりやすく解説 | コラム | クラウドソリューション|サービス|法人のお客さま|NTT東日本
https://business.ntt-east.co.jp/content/cloudsolution/column-486.html
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キャッシュを有効化
でキャッシュを利用できるみたい。要検証。