CreateLife ~AlwaysLatest~

【AWS】APIGateWay + LambdaでAPI開発をする

AWS

API開発を行う際にサーバーを立てると常時費用がかかりコスパが悪い。そんな時に役立つのがAPIGateWay + LambdaのAPI開発です。いつもは何もしないけどやる時はやる。そんなイケてるやつです。アクセス数による従量課金なので小規模開発ならほぼ費用はかかりません。

目次

  1. Lambdaで関数を作成
  2. APIGateWayでREST APIを作成
  3. リソースを作成
  4. メソッドを作成
  5. APIをデプロイ
  6. 動作確認
  7. まとめ

1. Lambdaで関数を作成

Node.jsにて作成します。
関数の中身はサンプルのまま、リクエストが来たらステータスコード200と「Hello from Lambda!」を返します。

2. APIGateWayでREST APIを作成

REST APIについてはこちらの記事がわかりやすかったです。
https://tech.012grp.co.jp/entry/rest_api_basics
最近のAPIは大体これに則ったものが多い印象だけど、以前はXML形式のものなどがあったみたいですね。まぁAPI開発するならRESTくらいで良いでしょうか。

任意の名前をつけます。

3. リソースを作成

リソースは「パス」の事と思えば良いです。
/loginとか/logoutとか
今回はトークンを生成して返すようなAPIを想定して/tokenとします。
ブラウザからAPIを叩く想定なのでCORSにチェックを入れます。(ドメインが違うことを許容する)

4. メソッドを作成

3でパスの定義をしたので、実際にそのパスでアクセスが来た時に行う「処理」を定義します。
メソッドはHTTPメソッドの事です。GET,POST,DELETEなど。
今回は対象パスにGETメソッドできたリクエストに対して先ほど定義したLambdaの処理を当てたいと思います。

5. APIをデプロイ

ステージを選択

ステージとは本番環境や開発環境に分ける際に使えるようです。
参考 => https://zenn.dev/fdnsy/articles/86897abce0bbf5

6. 動作確認

ステージのURLを呼び出すの内容にリソースで作成したパスをつけてブラウザに入力してみる

「Hello from Lambda!」が返って来れば完成!

7. まとめ

一連の挙動までは作成することができました。
あとはLambdaの内容をやりたい処理にする事でオリジナルのAPI作成ができます!