【发布时间】:2021-05-06 04:24:47
【问题描述】:
我正在尝试使用 v3 javascript sdk 调用 AWS Lambda 函数,但在获得任何有意义的响应时遇到问题。
我的代码看起来像这样......
const { Lambda } = require("@aws-sdk/client-lambda");
const client = new Lambda();
const params = {
FunctionName: "MyLamdaFuncton",
Payload: JSON.stringify({ "action": "do_something" }),
InvocationType: "Event"
};
client.invoke(params)
.then((response) => {
console.log(JSON.stringify(response,null,4));
})
.catch((err) => {
console.error(err);
})
我可以通过检查 CloudWatch 日志确认 lambda 函数按预期工作。然而,这是我在 NodeJS 代码中得到的响应......
{
"$metadata": {
"httpStatusCode": 202,
"requestId": "d6ba189d-9156-4f01-bd51-efe34a66fe34",
"attempts": 1,
"totalRetryDelay": 0
},
"Payload": {}
}
如何从 Lambda 函数获取实际响应和状态?
如果我更改上面的有效负载以故意在我的 Lambda 中抛出异常,控制台中的响应仍然完全相同。
更新: Lambda 函数是用 Ruby 编写的。响应是这样返回的......
{ statusCode: 200, body: JSON.generate(response.success?) }
“响应”来自它内部调用的另一个服务。
【问题讨论】:
-
提供 lambda 函数返回响应的方式。
标签: aws-lambda aws-sdk-js