aws-无服务器-lambda:"Internal server error"
aws-serverless-lambda: "Internal server error"
我是无服务器 lambda 函数的新手。我使用 lambda 创建了一个 post 请求。我将我的应用程序部署到 AWS
。我正在使用 Postman 测试我的应用程序。我厌倦了我的 post 请求,我得到了 internal server error.
。我还在 api-gateway 中进行了测试,我遇到了这个错误:
Fri Mar 05 19:09:33 UTC 2021 : Endpoint response body before transformations: null
Fri Mar 05 19:09:33 UTC 2021 : Execution failed due to configuration error: Malformed Lambda proxy response
Fri Mar 05 19:09:33 UTC 2021 : Method completed with status: 502
我不明白我做错了什么。这是我的 yaml 文件 post 请求事件
createBeers:
handler: handlers/createBeers.createBeers
events:
- http:
path: createBeers
method: post
cors: true
这是我的 lambda 函数
'use strict';
const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();
module.exports.createBeers = async event => {
const requestBody = JSON.parse(event.body);
const params = {
TableName: "tablename",
Item: {
beer_name: requestBody.beer_name,
beer_type: requestBody.beer_type,
beer_img_url: requestBody.beer_img_url,
beer_description: requestBody.beer_description,
alcohol_per: requestBody.alcohol_per
}
};
try {
await dynamoDb.put(params).promise();
return {
statusCode: 200,
body: JSON.stringify(requestBody),
};
} catch (error) {
console.log(error);
}
};
Malformed Lambda proxy response
听起来您的 lambda 没有返回正确的响应。一些故障排除建议:
- 打印出您的 lambda 中的请求正文,以说服自己 lambda 代码正在执行并且事件如您所料。
- 如果您的 lambda 失败,您不会返回响应。也尝试在您的 catch 块中返回一个错误
try {
await dynamoDb.put(params).promise();
return {
statusCode: 200,
body: JSON.stringify(requestBody),
};
} catch (error) {
return {
statusCode: 500,
body: JSON.stringify(error),
};
}
我是无服务器 lambda 函数的新手。我使用 lambda 创建了一个 post 请求。我将我的应用程序部署到 AWS
。我正在使用 Postman 测试我的应用程序。我厌倦了我的 post 请求,我得到了 internal server error.
。我还在 api-gateway 中进行了测试,我遇到了这个错误:
Fri Mar 05 19:09:33 UTC 2021 : Endpoint response body before transformations: null
Fri Mar 05 19:09:33 UTC 2021 : Execution failed due to configuration error: Malformed Lambda proxy response
Fri Mar 05 19:09:33 UTC 2021 : Method completed with status: 502
我不明白我做错了什么。这是我的 yaml 文件 post 请求事件
createBeers:
handler: handlers/createBeers.createBeers
events:
- http:
path: createBeers
method: post
cors: true
这是我的 lambda 函数
'use strict';
const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();
module.exports.createBeers = async event => {
const requestBody = JSON.parse(event.body);
const params = {
TableName: "tablename",
Item: {
beer_name: requestBody.beer_name,
beer_type: requestBody.beer_type,
beer_img_url: requestBody.beer_img_url,
beer_description: requestBody.beer_description,
alcohol_per: requestBody.alcohol_per
}
};
try {
await dynamoDb.put(params).promise();
return {
statusCode: 200,
body: JSON.stringify(requestBody),
};
} catch (error) {
console.log(error);
}
};
Malformed Lambda proxy response
听起来您的 lambda 没有返回正确的响应。一些故障排除建议:
- 打印出您的 lambda 中的请求正文,以说服自己 lambda 代码正在执行并且事件如您所料。
- 如果您的 lambda 失败,您不会返回响应。也尝试在您的 catch 块中返回一个错误
try {
await dynamoDb.put(params).promise();
return {
statusCode: 200,
body: JSON.stringify(requestBody),
};
} catch (error) {
return {
statusCode: 500,
body: JSON.stringify(error),
};
}