LoginSignup
7
5

More than 3 years have passed since last update.

(AWS) API GateWay + Lambda でAPIを実行してみた。

Last updated at Posted at 2020-01-31

Amazon API GateWay を使って、Lambdaで作成した関数を実行してみました。

<大まかな手順>
- AWS Lambdaで関数作成
- Amazon API GateWayで API作成
- APIを実行して、レスポンスを取得

LambdaとAPI GateWay作成のリージョンは「東京 (ap-northeast-1)」に設定して進めますので、事前にリージョンをご確認ください。

AWS Lambdaでの設定

ではさっそく始めます。
まず、Lambdaで関数を先に用意します。

Lambdaのコンソール画面にて、左側のメニューから「関数」→「関数の作成」ボタンをクリック。

image.png


関数作成ページが表示されるので「一から作成」にチェック→関数名入力→ランタイム選択→「関数を作成」ボタンをクリック。
例として、関数名を「testLambda」とし、ランタイムは「Node.js 12.x」を選びました。(Node.jsは全く書けないので、勝手にテンプレに期待w)
screencapture-ap-northeast-1-console-aws-amazon-lambda-home-2020-01-31-15_37_54.png


すると、下のような画面が表示されます。(テンプレコードもありますね!)
image.png
image.png


この段階で、単体テストしてみましょう。画面右上の「テスト」ボタンクリック→イベント名入力→「作成」ボタンクリック。(パラメータは設定していないので、コードは書いてあるままにしても構いません)
image.png
image.png


そしたら、こんな感じになります。「関数を実行したら下記のJSONコードが返ってきたよ」ていう内容が書かれてます。
これでオッケーです!

image.png

{
  "statusCode": 200,
  "body": "\"Hello from Lambda!\""
}

Amazon API GateWayでの設定

では、次にAmazon API GateWayの方へ移りましょう。
コンソール画面を開いたら右側の「APIの作成」ボタンクリック

image.png

左上の「HTTP API」を選択します。
「HTTP API」は最近できた機能らしく、設定が簡単です。
設定が簡単な分、機能の制限があったりしますが今回はLambdaにつながれば十分なので、HTTPを利用します。

HTTP APIの「構築」ボタンクリック
image.png


Step 1で
統合の追加」から
統合タイプ=「Lambda」
統合ターゲット(リージョン、Lambda関数名)=「ap-northeast-1」「testLambda」
にセットします。
API名は、自由に入力してください。(例では「testAPI」としています)
入力後は、「Review and Create」→「作成」の順でボタンをクリック→
image.png
image.png

こんな画面が表示されれば、APIが作成成功です。

APIキック

「URLを呼び出す」項目のURL/{Lambda関数名}でAPIを叩いて作成したLambda関数を実行することができます。

Statusコードが200で返ってきているので成功ですね!

Terminal(APIキック結果)
$ curl https://xxxxxx.execute-api.ap-northeast-1.amazonaws.com/testLambda


StatusCode        : 200
StatusDescription : OK
Content           : "Hello from Lambda!"
RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    X-Amzn-Requestid: xxxxxxxxx=
                    Content-Length: 20
                    Content-Type: application/json
                    Date: Fri, 31 Jan 2020 07:38:00 GMT

                    "Hello from Lambda!"
Forms             : {}
Headers           : {[Connection, keep-alive], [X-Amzn-Requestid, HJ7l5iHDIAMEAAQ=], [Content-Length, 20], [Content-Typ
                    e, application/json]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 20

ブラウザで実行するとこんな感じです。(ブラウザでは URL/{Lambda関数名}をURLに指定すれば、応答が返ってきます。
screencapture-ap-northeast-1-console-aws-amazon-apigateway-main-api-detail-2020-01-31-16_32_58.png

以上です!

7
5
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
7
5