LoginSignup
1
1

More than 1 year has passed since last update.

【AWS初心者でも分かりやすい】Lambdaで作成した関数をAPI Gatewayでアタッチする方法

Last updated at Posted at 2021-06-16

今回はLambdaで作成した関数をAPI Gatewayを使用して、Lambdaで作成した関数をAPIとして使用する方法をお教えします。

特に細かい説明というよりかは、やり方だけを書いていくので、なにか気になる点があればご自身でお調べください。

また、そこまで設定も難しくないので、肩の力を抜いてご覧ください。

それでは早速説明していきます。

はじめに

Lambdaで関数を作成している前提で話を進めていきます。

なので、まだLambdaで関数を作成していない方は作成してから本記事をご覧ください。

API Gatewayの設定

まず、Lambdaで作成した関数をAPIとして使用するために、API Gatewayで設定を行わなければなりません。

まずはAPI Gatewayのコンソール画面へいきます。

https://ap-northeast-1.console.aws.amazon.com/apigateway/main/apis?region=ap-northeast-1

APIの作成

そして、適当にAPIを作成します。

APIを作成する際、個人の用途に合わせタイプを選択してください。

ほとんどの場合、REST APIで問題ありません。

また、既存のAPIを使用しても構いませんので、お好きな方をお選びください。

作成したAPI、もしくは既存のAPIから「/」をクリック。

image.png

そのまま「アクション」から「リソースの作成」をクリック。

リソース名、リソースパスは任意の名前で入力。

本記事は「example」とします。

「リソースの作成」をクリック。

「API Gateway CORS を有効にする」は、後で有効にしますのでチェックしないでください。

メソッドの作成

そしたら、以下のように今設定したパスを選択し、「アクション」から「メソッドの作成」をクリック。

任意のメソッドを選択。

image.png

Lambda関数と紐づけ

そしたら以下のような画面になると思います。

image.png

「Lambda関数」から、APIとして使用したいLambda関数名を選択。

「保存」をクリック。

総合リクエストの設定

そしたら、同じようにパスのメソッド部分をクリック。

すると、以下のような総合リクエストという項目があるのでクリック。

image.png

一番下のマッピングテンプレートのタブをクリックし、「Content-type」の設定。

ほとんどの場合はapplication/jsonでOKです。

テンプレートの生成で「メソッドリクエストのパススルー」を選択。

「保存」してください。

CORSの有効化

image.png

ここから「アクション」→「CORSの有効化」を選択。

「CORSを有効にして既存のCORSヘッダーを置換」をクリック。

「はい、既存の値を置き換えます」をクリック。

デプロイ

最後にAPIとして使用するためにデプロイします。

「アクション」→「APIのデプロイ」

これでLambda関数をAPIとして実行できます。

URLの確認は、左のメニューから「ステージ」→「先ほど指定したパス(本記事なら/example)」

任意のメソッドを選択し、ページ上部にURLが発行されているので、このURLを使えばAPIを実行できます。

curlコマンドでAPIリクエスト

最後は、以下のcurlコマンドを例にリクエストを行ってみてください。

curl -X POST -H "Content-Type: application/json" -d '{"message": "API request"}' https://example.com/dev/example

そこまで難しい作業ではなかったと思います。

ただ、忘れそうなので自分の備忘録も兼ねて記事として書きました。

また、APIのデプロイも時間が経つと忘れることもあるので、皆さんも忘れないように。

皆さんのお役にも立てれれば幸いです。

以上、「【AWS初心者でも分かりやすい】Lambdaで作成した関数をAPI Gatewayでアタッチする方法」でした!

Thank you for reading

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1