1. ホーム
  2. node.js

[解決済み] AWS lambda api gateway エラー "Malformed Lambda proxy response".

2022-03-04 02:05:35

質問

AWS lambdaでhello worldのサンプルを設定し、api gatewayを通して提供しようとしています。私は、"Create a Lambda Function"をクリックして、api gatewayをセットアップし、Blank Functionオプションを選択しました。以下のようなラムダ関数を追加しました。 AWSゲートウェイ入門ガイド :

exports.handler = function(event, context, callback) {
  callback(null, {"Hello":"World"});  // SUCCESS with message
};

問題は、これにGETリクエストをすると、502のレスポンスが返ってくることです。 { "message": "Internal server error" } . そして、ログには "設定エラーのため実行に失敗しました。Malformed Lambda proxy response"と書かれています。

どうすればいいですか?

通常 Malformed Lambda proxy response Lambda関数からのレスポンスが、API Gatewayが期待する形式と一致していないことを意味します(例:以下のような形式)。

{
    "isBase64Encoded": true|false,
    "statusCode": httpStatusCode,
    "headers": { "headerName": "headerValue", ... },
    "body": "..."
}

Lambdaプロキシ連携を利用しない場合は、API Gatewayコンソールにログインし、Lambdaプロキシ連携のチェックを外すことで利用可能です。

また、断続的に Malformed Lambda proxy response Lambda関数へのリクエストがLambdaによってスロットルされている可能性があり、Lambda関数の同時実行制限の引き上げを要求する必要があります。