AWS Lambda:我是否可以返回上下文并让任务仍在运行?
现在我在生产中有一个lambda函数来处理日志string,然后将它们返回给客户端,所以:
1) string received by lambda 2) lambda transforms string 3) lambda returns via context.succeed the transformed string
现在我添加一个额外的步骤,将string保存在dynamodb表中,所以工作stream将是:
1) string received by lambda 2) lambda transforms string 3) lambda saves string to dynamo 4) lambda returns via context.succeed the transformed string
现在的位保存function是这样的:
function _saveItem (item) { dynamo.putItem(item, function (err, data) { //error handling here context.succeed(JSON.stringify(item)); }) }
我想知道是否有可能触发putItem
函数,并没有等待它结束,通过context.succeed
返回项目
我假设你正在使用“RequestResponse”风格调用。 真的吗?
如果您希望立即返回值,则可以始终调用另一个Lambda函数(使用“Event”调用),并将该函数写入DDB,然后返回该值。
“事件”调用将在后台asynchronous运行。
我相信简短的回答是,一旦context.succeed被调用,asynchronous调用就不会完成。 但是,通过这篇博客文章 ,您可以更详细地了解Lambda和这个用例。
- AWS SDK与DynamoDB和putItem有关
- Node JS和AWS sdk – 具有多个Expected值的putitem不起作用
- AWS DynamoDB查询不对BOOL值进行筛选
- NodeJS API通过ID获取。 如何检测项目未find?
- dynamodb节点aws-sdk简单getItem()调用
- 来自Node-aws的Dynamo Local:所有操作都失败“无法对不存在的表执行操作”
- 使用Amazon KMSencryption值,使用带有Lambda的DynamoDB存储/检索(NodeJS)
- Nodejs错误:读取ECONNRESET
- DynamoDB – 如何在一次更新中创build映射并为其添加属性