AWSのLambdaとAPI Gatewayの連携を確認しています。
Lambda関数
def lambda_handler(event, context):
x = str(event["id"]) + str(event["name"])
return {
'statusCode': 200,
'body': x
}
APIのマッピングテンプレート
{
"id" : "$input.params('id')",
"name" : "$input.params('name')"
}
API Gateway側のメソッドテストで「id="1001"&name="aaa"」を渡したら、想定通りのレスポンスが
返ってきました。
{
"statusCode": 200,
"body": "1001aaa"
}
ただし、API Gatewayのメソッドをデプロイして、以下のURLを打ったらエラーが出ました。
https://XXXXXXXXXXXXXXXXXXXXXXXXXXX(APIエンドポイント)?id="1001"&name="aaa"
エラーMSG:{"message": "Could not parse request body into json: Could not parse payload into json: Unexpected character ('1' (code 49)): was expecting comma to separate Object entries\n at [Source: (byte[])"{\r\n "id" : ""1001"",\r\n "name" : ""\r\n}"; line: 2, column: 13]"}
またAPIのマッピングテンプレートを以下のように変更したら、API Gatewayのテストでエラーとなりますが、エラーを無視してメソッドをデプロイしたら、URLのほうは正しいレスポンスが返ってきました。
{
"id" : $input.params('id'),
"name" : $input.params('name')
}
エラーMSG:{"message": "Could not parse request body into json: Could not parse payload into json: Unrecognized token 'fuku': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (byte[])"{\r\n "id" : 1001,\r\n "name" : fuku\r\n}"; line: 3, column: 17]"}
どこに問題があるでしょうか?
あなたの回答
tips
プレビュー