Node.js 在使用AWS SDK for Java调用AWS Lambda函数时,如何检索context.done()消息?

Node.js 在使用AWS SDK for Java调用AWS Lambda函数时,如何检索context.done()消息?,node.js,amazon-web-services,aws-sdk,aws-lambda,Node.js,Amazon Web Services,Aws Sdk,Aws Lambda,我正在使用调用以前上载的一些函数。该方法返回一个对象,该对象似乎只包含一组非常有限的属性和方法。具体而言,对象中包含的唯一相关信息是HTTP状态代码(例如,202表示成功)。似乎没有用于检索提供给Lambda Node.jscontext.done()method的错误代码或消息的方法的任何属性 因此,无法直接从Lambda函数调用中获取任何“返回值”。我必须让Lambda处理程序将一个对象放入S3,以存储返回值的JSON表示,然后使用javasdk代码在使用者端获取对象的内容 有人知道从Lam

我正在使用调用以前上载的一些函数。该方法返回一个对象,该对象似乎只包含一组非常有限的属性和方法。具体而言,对象中包含的唯一相关信息是HTTP状态代码(例如,
202
表示成功)。似乎没有用于检索提供给Lambda Node.js
context.done()
method的错误代码或消息的方法的任何属性

因此,无法直接从Lambda函数调用中获取任何“返回值”。我必须让Lambda处理程序将一个对象放入S3,以存储返回值的JSON表示,然后使用javasdk代码在使用者端获取对象的内容


有人知道从Lambda函数直接获取一些有意义的“返回值”的方法吗?

在代码中,您可以查看Lambda调用的结果:

lambda.invoke(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else {
        console.log(data);           // successful response
        if (data.Payload != '{}') {
            var jdata = JSON.parse(data.Payload);
            console.log(jdata.something);
            successCallback(jdata);
        }
        else successCallback(null);
    }
}); 
在Lambda函数中,可以有如下内容:

dynamodb.getItem(params, function(err, data) {
   if (err) {
      console.log(err);
      context.fail(err);
   } else {
      console.log(data);
      context.succeed(data);
   }
}
您还可以用context.done()替换context.success() context.success(null,data)


在我描述的例子中,data.Payload将是从DynamoDB检索到的JSON字符串。

可能是从Java中复制的,您需要(在询问此问题后添加)方法。对任何复制/粘贴者的警告是:
DynamoDB.getItem
回调没有调用
context.fail
并返回,因此,故障将被记录,然后它将尝试记录数据,然后它将调用
context.success