有没有一种方法可以在AWS Lambda函数中发送确认响应



我正试图在slack中处理模式提交,但其间有一些数据库操作需要几秒钟的时间,由于这种延迟,我得到了:We had some trouble connecting error when submitting slack dialog (Slack API)

我知道在node.js中我们可以这样做:

app.post('/', async (req, res){
res.status(200).send({text: 'Acknowledgement received !'});

// handle other task
return res.json({done: 'Yipee !'})
})

但在AWS Lambda函数中,我不知道如何在3秒内处理此确认响应。

module.exports.events = async (event, context, callback) => {
??? -> How to handle acknowledgement here, it must be handled at top.
// handle task
return {
statusCode: 200,
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({text: 'Done !'})
} 
}

如果您只想得到成功调用的通知,然后让lambda继续做自己的事情,那么您可以通过将InvocationType参数设置为Event来异步调用lambda。https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestSyntax

Slack的API在无服务器架构中可能很难处理,因为大多数无服务器实现都喜欢将响应作为最后一件事,而不是第一件事。一种方法是将任何必需的行为封装在承诺中,只有在处理完任务后才能解决该承诺。有关此示例,请参见此处。

最新更新