はじめに
こんにちは。東京五輪のサッカー準決勝のチケット持ってましたが、無観客になっちゃいましたね
いやー、もし再抽選で当たってたら行く行かないで迷っていたと思うので、自分はこれでよかったと思います。
さて、今回は先日作成したLambda関数をAPI Gatewayを通してAPIとして使えるようにしようと思います。
先日作成したLambda巻子はこちら
API Gatewayを使ってLambda関数を実行する
1. APIの作成
APIの作成からAPIを作成します。
API名はお好みで大丈夫です。URLに含まれたりはしません。
2. リソースの作成
アクションプルダウンメニューからリソースの作成を押下。
3. メソッド作成
2と同様にプルダウンメニューからメソッドの作成を選択しGETメソッドの設定を行います。
使用したいLambda関数名のページから関数のARNをコピペします。
ここで、Lambdaプロキシ統合の使用にチェックを入れるとクエリパラメータやパスパラメータなどをLambda側に渡すことができます。
4. APIのデプロイ
2と同様にプルダウンメニューからAPIのデプロイを選択し以下を参考にデプロイを行います。
デプロイ完了後APIアクセスのURLが表示されますが、まだアクセスしません![]()
5. Lambda関数編集
Lambda関数がAPI Gatewayで返却できるレスポンス形式になっていないため(私の場合)その確認と編集を行います。
前述のLambdaでスクレイピングする記事のコードを以下のように編集します。
デプロイもお忘れなく![]()
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と同じ結果が表示されれば完了です![]()
おわりに
5をしないとエラーを吐き、つまづきポイントだと思います。
エラー出た際は、Lambda側でテストで通るかどうか試してみてください、ログも出ますので読めなり、ググるなりすればわかると思いますので![]()
それでは!



