1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

API Gatewayを使ってLambda関数を使ったREST APIを作成する

Posted at

はじめに

こんにちは。東京五輪のサッカー準決勝のチケット持ってましたが、無観客になっちゃいましたね :innocent: いやー、もし再抽選で当たってたら行く行かないで迷っていたと思うので、自分はこれでよかったと思います。

さて、今回は先日作成したLambda関数API Gatewayを通してAPIとして使えるようにしようと思います。

先日作成したLambda巻子はこちら

API Gatewayを使ってLambda関数を実行する

1. APIの作成

APIの作成からAPIを作成します。
API名はお好みで大丈夫です。URLに含まれたりはしません。

1.png

2. リソースの作成

アクションプルダウンメニューからリソースの作成を押下。

2.png
3.png

3. メソッド作成

2と同様にプルダウンメニューからメソッドの作成を選択しGETメソッドの設定を行います。
使用したいLambda関数名のページから関数のARNをコピペします。

ここで、Lambdaプロキシ統合の使用にチェックを入れるとクエリパラメータやパスパラメータなどをLambda側に渡すことができます。

4. APIのデプロイ

2と同様にプルダウンメニューからAPIのデプロイを選択し以下を参考にデプロイを行います。

デプロイ完了後APIアクセスのURLが表示されますが、まだアクセスしません:bow:

q.png

5. Lambda関数編集

Lambda関数がAPI Gatewayで返却できるレスポンス形式になっていないため(私の場合)その確認と編集を行います。

前述のLambdaでスクレイピングする記事のコードを以下のように編集します。
デプロイもお忘れなく:pray:

  from selenium import webdriver
+ import json

  def lambda_handler(event, context):

...
...
...

-     return title
+     response = {
+         'title': title
+     }
+     return {
+         'statusCode': 200,
+         'body': json.dumps(response)
+     }

6. Lambda上でテストする

Lambdaのテストのタブで、新しいイベントからAmazon API Gateway Proxy を選択します。
お好みで名前を付けて保存し、テストを実行します。

7. APIを叩いてみる

4で出力されたAPIのURLを叩いてみて、6と同じ結果が表示されれば完了です:thumbsup:

おわりに

5をしないとエラーを吐き、つまづきポイントだと思います。
エラー出た際は、Lambda側でテストで通るかどうか試してみてください、ログも出ますので読めなり、ググるなりすればわかると思いますので:smile:

それでは!

1
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?