share facebook facebook2 twitter menu hatena pocket slack

2015.11.30 MON

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

鈴木 宏康

WRITTEN BY鈴木 宏康

東京リージョンでAPI Gatewayが利用できるようになりました!

【AWS発表】Amazon API Gatewayが東京リージョンで利用可能になりました

ということで、練習がてらに下記のようにAPI Gatewayのバックエンドを
LambdaにしてPOSTでJSONをデータとしてリクエストして、
そのJSONがそのままレスポンスされる簡単な仕組み(エコー)を作ってみました。

Untitled%282%29+%286%29

Lambdaの準備

バックエンドのLambdaは下記のようにサラッとPythonで記述してます。

def lambda_handler(event, context):
    try:
        print(event)
        return event
    except Exception as e:
        print(e)
        raise e

2015-10-09_04-19-32

2015-10-09_04-21-22

Lambdaのテスト

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

2015-10-09_04-23-21

テストを実行します。

2015-10-09_04-24-06

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

2015-10-09_04-27-10

API Gatewayの作成

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

2015-10-09_04-29-57

まず、APIを作成します。

2015-10-09_04-31-00

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

2015-10-09_04-32-04

2015-10-09_04-33-29

2015-10-09_04-34-00

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

2015-10-09_04-34-51

2015-10-09_04-35-46

API Gatewayのテスト

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

2015-10-09_06-06-16

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

2015-10-09_06-07-23

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

2015-10-09_06-08-07

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

2015-10-09_06-09-21

API Gatewayのデプロイとテスト

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

2015-10-09_06-10-17

2015-10-09_06-10-43

2015-10-09_06-11-40

2015-10-09_06-12-42

上記の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で
確認することができます。

2015-10-09_06-18-59

元記事はこちら

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

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。