Lol*_*pez 3 post json amazon-web-services aws-lambda
AWS Lambda 新手在这里。我正在使用 AWS Lambda 函数进行一些测试,但有些功能对我来说不正确。鉴于此 lambda 函数:
exports.handler = async (event, context, callback) => {
var response = {
statusCode: 200,
headers: {'Content-Type': 'application/json'},
response: event.talk
};
callback(null, response);
};
Run Code Online (Sandbox Code Playgroud)
{
"talk": "Hello World"
}
Run Code Online (Sandbox Code Playgroud)
我得到这个回应(这是一个截图):
{
"statusCode": 200,
"headers": {
"Content-Type": "application/json"
},
"response": "Hello World"
}
Run Code Online (Sandbox Code Playgroud)
但是当我发出 POST 请求时(我添加了一个开放的 API 网关,请看这里),它只返回空数据,有时还会返回内部服务器错误(这里是屏幕截图):
no data
Run Code Online (Sandbox Code Playgroud)
如果我将 Lambda 函数修改为 JSON 解析正文,它将起作用
exports.handler = async (event, context, callback) => {
var body = JSON.parse(event.body);
var talk = body.talk;
var response = {
statusCode: 200,
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(talk)
};
callback(null, response);
};
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?为什么测试按钮的工作方式与 POST 请求不同?我希望两者都能工作,特别是测试,因为我想“调试”“无服务器”
当您调用AWS lambda处理请求时,您在请求中传递了什么。
因此,当您需要
event使用 body传递数据时,只需body在eventObject 中添加参数即可。
{
"body": "{\"talk\":\"Hello World\"}"
}
Run Code Online (Sandbox Code Playgroud)
笔记:
当您调用 lambda 时,
POST请求对象包含body在事件中。
| 归档时间: |
|
| 查看次数: |
3382 次 |
| 最近记录: |