gpt4 book ai didi

node.js - AWS Lambda回调 Node js太快

转载 作者:太空宇宙 更新时间:2023-11-03 23:06:53 27 4
gpt4 key购买 nike

我正在尝试复制 AWS 文档 ( link ) 中的缩略图示例。我想在创建该缩略图后立即使用它。我希望 context.done() 回调就足够了。回调给了我一个很好的回应,但还为时过早。图像并不总是会调整大小并在其存储的 s3 存储桶中可用。在调用 lambda 函数时,我特别将调用类型设置为“Event”,以便回调应该在函数调整大小后返回。

考虑到文档中的示例,等待整个 lambda 函数完成的正确方法是什么?在我的应用程序中调用 lambda 函数的函数现在如下所示:

AWS.config.loadFromPath('./configs/config.json');
var lambda = new AWS.Lambda();
var params = {
FunctionName: 'resizeImage',
InvocationType: 'Event',
Payload: JSON.stringify({key: req.body.key})
};
lambda.invoke(params, function (err, data) {
if (err) {
console.log(err, err.stack); // an error occurred
} else {
console.log(data); // successful response
next();
}
});

最佳答案

我找到了问题的答案。我搞乱了您在调用该函数时可以提供的调用类型。有三种调用方式,在我的问题中我使用“事件”类型。这会导致 lambda 函数给出直接(因此异步响应),该函数可能尚未完成。将调用类型更改为“RequestResponse”可提供同步响应,我们希望在其中等待函数完成。

另请参阅AWS Documentation

关于node.js - AWS Lambda回调 Node js太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148856/

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