Top / AWS / Amazon API Gateway

API GatewayからAWS Lambdaを呼び出す。

AWS Lambdaは、サーバレスでロジックを記述できる関数型のフレームワークです。また API Gateway はAWSのサービスをRESTで呼び出す事が出来るフレームワークです。これらを用いて、API GatewayからLambdaを呼び出すことで、サーバレスなAPI環境が構築できそうです。

具体的には

https://xxxx.execute-api.ap-northeast-1.amazonaws.com/dev?q_param=value1

などとクエリパラメタ付きのリクエストを送ると、

{
  "my_param1": "value1"
}

なんてJSONを echoするAPIを構築してみます。

まずはパラメタを受け取るLambda関数を作成

Lambdaサービスのトップにアクセスし、関数の作成 >> 一から作成を選択します

01.png

関数名を helloworld に、ロールは新しく作成(lambdaRole)し、関数の作成をクリック

02.png

helloworldという関数が作成され、関数を記述する画面が表示されます。今回はPythonを選択しました。

03.png

真ん中あたりの「ハンドラ」というテキストボックスに、lambda_function.lambda_handler とありますが、これはソースコードの lambda_function.pyのlambda_handlerメソッドを呼び出すことを意味しています。で、具体的なコードは 単純なオブジェクトを一つ、

return {
 "my_param1": event['param1']
}

と返すように記述しました。

さて右上の「テスト」ボタンをクリックしてみると「テストイベントの設定」という、関数を呼び出した際にパラメタに渡ってくるオブジェクトを指定できる画面が表示されます。

04.png

図のように、JSONオブジェクトを指定したりできますが、ここでは"param1":"value1" というテストデータを指定しました。これは関数中の event['param1'] に渡ってくるようになっています。

テスト

つぎにこの画面下の「作成」をクリックすると、元の画面に戻ってきます。先のテストイベントが選択された状態になっているので、再度「テスト」をクリックすることで、関数が実行されます。

06.png

関数の戻り値は

return {
 "my_param1": event['param1']
}

と書きましたが、実行結果は

return {
 "my_param1": "value1"
}

となっていて、テストイベントの

{
  "key3": "value3",
  "key2": "value2",
  "param1": "value1"   ←ココ
}

この値が event['param1'] とやってアクセス出来ることが確認できました。

つぎにAPI Gatewayを定義


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / AWS / Amazon API Gateway

現在のアクセス:5622


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS