簡體   English   中英

NodeJS:AWS SDK V3:未收到來自 lambda function 的任何響應數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM