[英]NodeJS: AWS SDK V3: Not receiving any response data from lambda function
我正在嘗試使用 v3 javascript sdk 來調用 AWS Lambda ZC1C425268E68385D1AB4Z5074C17A94
我的代碼看起來像這樣......
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 function 可以正常工作。 然而,這是我在 NodeJS 代碼中得到的響應......
{
"$metadata": {
"httpStatusCode": 202,
"requestId": "d6ba189d-9156-4f01-bd51-efe34a66fe34",
"attempts": 1,
"totalRetryDelay": 0
},
"Payload": {}
}
如何從 Lambda function 獲得實際響應和狀態?
如果我更改上面的有效負載以故意在我的 Lambda 中拋出異常,控制台中的響應仍然完全相同。
更新: Lambda function 寫在 Ruby 中。 像這樣返回響應......
{狀態代碼:200,正文:JSON.generate(response.success?)}
其中“響應”來自它在內部調用的另一個服務。
我已經弄清楚我做錯了什么。 問題是“InvocationType”。 我通過更改為...
調用類型:“請求響應”
然后我不得不像這樣提取響應數據......
常量 response_data = JSON.parse(new TextDecoder("utf-8").decode(response.Payload))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.