2015年10月9日金曜日

"API Gateway"のバックエンドを"Lambda"にしてJSONデータをエコーさせる


東京リージョンでAPI Gatewayが利用できるようになりました!
【AWS発表】Amazon API Gatewayが東京リージョンで利用可能になりました
ということで、練習がてらに下記のようにAPI Gatewayのバックエンドを
LambdaにしてPOSTでJSONをデータとしてリクエストして、
そのJSONがそのままレスポンスされる簡単な仕組み(エコー)を作ってみました。


Lambdaの準備


バックエンドのLambdaは下記のようにサラッとPythonで記述してます。
def lambda_handler(event, context):
    try:
        print(event)
        return event
    except Exception as e:
        print(e)
        raise e


Lambdaのテスト


次のようにJSONのパラメータを設定して、


テストを実行します。


CloudWatch Logsでログを確認すると、上記のパラメータが出力され、
正常に動作していることがわかります。


API Gatewayの作成


次は、上記のLambdaをバックエンドにしたAPI Gatewayを作成します。


まず、APIを作成します。


次に、メソッドを作成します。


そして、バックエンドととして上記のLambdaを設定します。


API Gatewayのテスト


それでは動作確認ですが、下記のようにUIが用意されていて簡単にテストできます。


前述のLambdaのテスト同様、パラメータを入力してテストします。


すると同一画面にテスト結果が表示されます。レスポンスがリクエスト時の
パラメータと同じなので正常に動作していることがわかります。


Lambdaの動作は当然CloudWatch Logsで確認することができます。


API Gatewayのデプロイとテスト


最後にデプロイしますが、下記のように直感的に実施できます。



上記のURLをCURLでテストしてみると、正常に動作していることがわかります。
$ curl -d '{"key1":"value7","key2":"value8","key3":"value9”}' https://8vdagewkwe.execute-api.ap-northeast-1.amazonaws.com/prod
{"key3": "value9", "key2": "value8", "key1": "value7"}

繰り返しになりますが、Lambdaの動作は当然CloudWatch Logsで
確認することができます。


0 コメント: