Amazon API Gateway + AWS Lambda でのレスポンス形式

AWS運用自動化サービス「Cloud Automator」

はじめに

こんにちは、技術一課の山中です。
冬は好きではないですが、夏は嫌いです。

さて、 Amazon API Gateway + AWS Lambda で REST API を構築することは多々あるとおもいますが、 Lambda プロキシ統合をセットアップした際に、 AWS Lambda からどのような形式でレスポンスを組み立て返せばいいのか、忘れてしまうことはありませんか?

API Gateway の Lambda プロキシ統合をセットアップする

少なくとも私は覚えることができないので、いっつも調べています。
というわけで、自分自身の備忘録がてらここに残しておくことにします。

Lambda 関数のレスポンス形式

プロキシ統合のための Lambda 関数の出力形式 には、以下のように記載があります。

この中で、 statusCode が必須なので、 Python で正常レスポンスを返すだけであれば、 Lambda 関数の中身は以下のように書けば良さそうです。

もし body を加える場合はこのようになります。

Amazon API Gateway から呼んでみる

Amazon API Gateway + AWS Lambda の構成で実際に呼んでみます。
まずは、 Lambda 関数に以下をデプロイし実行します。

レスポンス結果は以下のとおりです。

ためしに、 statusCode を 404 に変更してみます。

レスポンス結果は以下のとおりです。

当然 500 に変更しても同様の結果が得られます。

body を加えた場合のレスポンスは

以下のとおりです。

最後に

Amazon API Gateway + AWS Lambda で作成する REST API で Lambda 関数のテストをしたいけど、レスポンスどうすればいいんだっけ?と考える時間がもったいないので、そんなときはこの備忘録を見ていこうと思います。

AWS運用自動化サービス「Cloud Automator」