0
1

AWS Lamba関数をテストする際にbodyの書きかた

Posted at

AWS LambdaとAPI Gatewayを使ってAPIを実装するユースケースは多いと思います。

自分がLambda関数のテスト機能を使う際に、リクエストの「body」の書き方で詰まってしまったので、その時の解決法を共有します。

問題点

テスト機能を使ってLambda関数を実行しようとした際、以下のような形式でリクエストを送信したところ、エラーが発生しました。

{
 "body": 
     {
         "userId":"test20240822@test.com",
         "displayName":"test20240822",
         "email":"test20240822@test.com"
    }
}

この形式で送ると、Lambda関数内でbodyの内容がパースされず、以下のようなエラーメッセージが表示されることがあります:

{
    "errorMessage": "Could not parse request body into json: Unexpected character (\"userId\":\"test20240822@test.com\")"
}

正しい書き方

API Gatewayを通してリクエストを送信する際には、このようにオブジェクト形式でbodyを指定するのではなく、文字列形式で送信する必要があります。

正しいリクエスト形式は以下のようになります。bodyは文字列として送信する必要があります。

{
 "body": "{\"userId\":\"test20240822@test.com\",\"displayName\":\"test20240822\",\"email\":\"test20240822@test.com\"}"
}

まとめ

  • bodyは文字列形式で渡す必要がある

  • JSONオブジェクトをそのまま渡すとエラーが発生するため、エスケープされた文字列に変換する必要がある

以上です!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1