Aws lambda Sam在本地调用时未编码请求正文
调用Aws lambda Sam在本地调用时未编码请求正文,aws-lambda,aws-api-gateway,aws-sam,Aws Lambda,Aws Api Gateway,Aws Sam,调用sam local start api并发送多部分请求时,未对事件体进行编码,但正在云中对其进行编码。所以,我希望在我当地的环境中也有同样的行为 重现问题的步骤: 创建由sam init提供的Hello World项目 添加一个post方法 返回处理程序中编码的ISBase64 执行HTTP请求: 答案总是一样的: 我尝试过使用代理集成,但没有成功 我的解决方法是在处理程序中设置如下内容: const csvString = event.isBase64Encoded ? Buffer.fr
sam local start api
并发送多部分请求时,未对事件体进行编码,但正在云中对其进行编码。所以,我希望在我当地的环境中也有同样的行为
重现问题的步骤:
const csvString = event.isBase64Encoded ? Buffer.from(event.body, 'base64').toString('utf-8') : event.body;
您的
lambdaHandler
被硬编码为返回{“message”:false}
。如果希望其不同,请修改代码。否则,函数将返回消息:event.isBase64Encoded
。否。如果您不相信,请尝试在console.log中运行JSON.stringify({message:event.isBase64Encoded})
exports.lambdaHandler = async (event, context) => {
try {
// const ret = await axios(url);
response = {
'statusCode': 200,
'body': JSON.stringify({
message: event.isBase64Encoded,
// location: ret.data.trim()
})
}
} catch (err) {
console.log(err);
return err;
}
return response
};
curl --location --request POST 'http://127.0.0.1:3000/hello' \
--header 'saa: csv/csv-file' \
--form 'foo=@/home/user/csv-file.csv'
{
"message": false
}
const csvString = event.isBase64Encoded ? Buffer.from(event.body, 'base64').toString('utf-8') : event.body;