Amazon API Gateway 『チュートリアル: サンプルをインポートして REST API を作成する』をやってみた

2019.12.05

今年も残りわずかですね…娘と旦那さんのクリスマスプレゼントに悩むかめです。
助けてサンタさーん!

さて、今回は、 AWS 公式サイトの Amazon API Gateway チュートリアル: サンプルをインポートして REST API を作成する をやって少し遊んでみたので、その内容をまとめてみようと思います。

ちなみに、非エンジニアの私が、このチュートリアルをやろうと思った経緯は以下のような感じです。
たぶん、そのうち Amazon API Gateway で (非エンジニアが) WAF を触ってみたみたいなブログを書くかもしれません。

チュートリアルをやろうと思った経緯

  1. GDPR 対策とかもあるし、カスタマリレーションシップの方でも簡単な定型作業を担当することになるし AWS の勉強でもすっかと思い立つ
  2. とりあえずセキュリティっぽいなということで AWS WAF について調べてみる
  3. とりあえず AWS WAF 触ってみるか…よし、 API Gateway でなんか API 作って設定してみるかと決意
  4. 手頃な API Gateway のサンプルコードないかな -> 公式にお手軽なチュートリアルあるじゃん! ←イマココ

事前準備

このチュートリアルを行う前に用意するものは、以下の 2 つです。

  • AWS アカウント
  • API Gateway の操作権限を持った IAM ユーザ、またはロール
  • チュートリアル

    1. AWS マネジメントコンソールに API Gateway の操作権限を持った IAM ユーザ、またはロールでログイン
    2. サービスから API Gateway を検索し、 API Gateway コンソールを開きます

    3. REST API の [インポート]をクリックします
      ※ UI がチュートリアルの説明のものとは少し変わっていたようで、最初の API でしたが、特に Welcom ページはなく、 API Gateway コンソールのページをスクロールしたら、下の方にメニューがあったという状況でした。

    4. なにやらメッセージが出てきたので [OK] をクリックします

    5. 設定画面になったので、以下の設定(初期値)で [インポート] をクリックします

      項目 設定値
      プロトコルを選択する REST
      新しい API の作成 API の例
      名前と説明 リージョン
      必須 警告を失敗とみなす

    6. 作成された API の詳細画面が表示されるので、 リソースツリーから POST/pets メソッドを選択します

    7. 表示された画面で [クライアント] の [テスト] をクリックします

    8. 表示された画面をスクロールし、リクエスト本文に {"type": "dog","price": 249.99} という値を貼り付けて [テスト] をクリックします

    9. 画面右側に実行結果やログなどが表示されるので、「あーそうゆうことね、完全に理解した」と言いながら眺めます

    10. [アクション] から [API のデプロイ] をクリックします

    11. 表示されたポップアップでどこにデプロイするのかなどの情報を設定し [デプロイ]をクリックします

    12. ステージエディターという画面が表示されます

    13. ステージツリーから GET/pets/{petId} を選択し、表示された URL をコピーします

    14. ブラウザのアドレスバーにコピーした URL を貼り付け、 {petId} を 1 に変更して Enter を押します

    15. id:1 の情報が表示され API が実行できる状態になったことがわかります

    今回のチュートリアルの内容はここまでです。
    ひとまず、私の PC からアクセスできる API が用意できたので、次回は、 WAF を使ってどんなことができるのかを確認してみようと思います。

    おまけ

    ふと、 petId を変えたらデータがないと出るのかなーなどと思い、色々な Id で実験してみたところ、以下のような状況で上限値は 1e+308 だったことをここにご報告いたします。

    Id type
    1 dog
    2 cat
    3 fish
    4 bird
    5 dog
    6 gecko
    7 〜 1e+308 dog

    1e+309 以降は、以下のエラーでした。