【AWS】API GatewayからLambdaを呼び出すとeventが空でパラメータを取得できなかったり「Internal server error」が出たりして悩んだが解決した

IT

結論を先に言う

・統合リクエストで「Lambda プロキシ統合の使用」にチェックを入れる。
・プロキシ統合を使用する場合、Lambdaは次の形式で結果を返す必要がある。

{
  "isBase64Encoded" : "boolean",
  "statusCode": "number",
  "headers": { ... },
  "body": "JSON string"
}

悩んだ経緯

最初に参考にした記事に「プロキシ統合の使用にチェックを入れると楽」のように、チェックを入れなくても大丈夫かのようなニュアンスで書かれていた。チェックを入れなくてもマッピングできるものと思い込んでいた。(できるのかもしれないが簡単ではないのだろう。)
また、チェックを入れると「InternalError」が出て、原因がわからず悩んだ。
悩んだ末に辿り着いたstack overflowの記事に、両方の悩みに対する答えが書いてあった。


【参考サイト】

答えが書いてあったstack overflow

Event Object is empty in AWS Lambda nodejs function
I am using Lambda function to query a RDS MySQL database. To fetch a row, I am passing the primary key as parameter in the URL (with AWS API Gateway). Example U...

コメント