gpt4 book ai didi

node.js - 使用适用于 Java 的 AWS 开发工具包调用 AWS Lambda 函数时如何检索 context.done() 消息?

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:07 24 4
gpt4 key购买 nike

我正在使用AWS SDK for Java调用一些AWS Lambda之前已经上传的功能。 invokeAsync方法返回 invokeAsyncResult对象,它似乎只包含非常有限的一组属性和方法。特别是,对象中包含的唯一相关信息是 HTTP 状态代码(例如,202 表示成功)。似乎没有任何用于检索提供给 Lambda Node.js context.done() 方法的错误代码或消息的方法属性。

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

有人知道如何直接从 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.succeed() 替换为 context.done() context.succeed(null, 数据);

在我描述的情况下,data.Payload 将是从 DynamoDB 检索的 JSON 字符串。

关于node.js - 使用适用于 Java 的 AWS 开发工具包调用 AWS Lambda 函数时如何检索 context.done() 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com