【API Gateway】AWS初心者がPythonのrequestsでAPI GatewayとLambdaを使ったら便利すぎた件
APIを使いたい
最近Webアプリを作る学習?をしてることもあり、Python上で外部のAPIを利用することが多くなりました。
今回は、AWSのAPI Gateway宛にリクエストを飛ばして、Lambdaでなんらかの処理を行い、結果を受け取るまでの流れを書き残しておきます。
px.a8.net
Lambda関数の作成
今回はAWSのユーザ設定等が完了しており、すぐに開発に取り掛かれる状態を前提として記載していきます。
マネジメントコンソールからLambdaを選択し、関数を作成します。
作成が完了すると、このような画面が出てきます。ここからすでにあるAPI Gatewayをトリガーに設定してもいいのですがまだ作成していないので、今回はAPI Gatewayを作成するときにLambda関数を指定してあげることで連結を行います。またLamdaの関数上でAPI Gatewayにreturnするため、送信先は特に設定しません。
今回は動作確認だけなので、とくに処理は記載しません。本来は、リクエストをlambda_function.pyで受け何らかの処理を施し、API Gatewayの渡していく流れになると思います。
APIの作成
次に実際にPythonのプログラムから利用するAPIを作成します。AWSのサービスからAPI Gatewayを選択しAPIを作成をクリックします。今回はREST APIを選択します。
次にアクションからメソッドを追加します。リソースを作成してその中にメソッドを作成するのが良いですが、今回は特に作りこむ予定はないので、直下に作成してしまいます。今回はGETで作成します。
セットアップは以下のようにしています。マッピング等は設定方法がイマイチわかっていないので、プロキシ統合にチェックを入れておきました。(チェックすると勝手にしてくれる?)Lambda関数は先ほど作成した、hatena_testを選択しています。
テストをして問題なくレスポンスが帰ってくることを確認したら、アクションからAPIをデプロイしておきます。
PythonでAPIを利用する
最後にPythonから実際にAPIを利用できるかどうかを確認します。APIのエンドポイントはステージから確認できました。
このエンドポイントに対しrequestsのGETで呼び出しを行います。実際に利用したコードは以下になります。
import requests res = requests.get("エンドポイントのURL") print(res.text)
これでレスポンスのボディにある「Hello from Lambda!」が表示されます。
今回は検証のためメッセージの確認まででしたが、API GatewayとLambdaを使用すれば、様々な機能を作れるということが分かりとても勉強になりました。
おそらくこれからどんどんAWSを利用する機会は増えて来ると思いますので、積極的に利用していけるようにしたいと思います。