【问题标题】:Is there a way to send acknowledgement response in AWS Lambda functions有没有办法在 AWS Lambda 函数中发送确认响应
【发布时间】:2020-11-26 15:54:24
【问题描述】:

我正在尝试在 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 !'})
  } 
}

【问题讨论】:

    标签: javascript amazon-web-services aws-lambda slack slack-api


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用无服务器架构可能难以处理 Slack 的 API,因为大多数无服务器实施都喜欢将响应作为他们做的最后一件事,而不是第一件事。一种方法是将任何需要的行为包装在一个 Promise 中,并且只有在您处理完任务后才解决该 Promise。有关此示例,请参阅 here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-10
        • 1970-01-01
        • 2023-01-13
        • 2021-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多