在返回 alexa(amazon echo) 之前,我的 AWS lambda 函数可以保留多长时间?

How long can I have my AWS lamba function hold before returning for alexa(amazon echo)?

这仅用于演示,Alexa(Amazon echo)不支持我们将文本推送到它以随机朗读,因此我们想进行一次黑客攻击。

  1. 用户对着 Alexa 说话
  2. 我们让 lambda 执行一个动作,然后希望休眠并等待 API 响应,这在我们做某事之前不会发生
  3. 然后我们可能post来自另一个用户的回复
  4. Lambda 现在returns 文本

通过这种方式,我们尝试通过 Alexa 模拟双向通信。

我需要担心 Alexa 超时吗?如果是这样,需要多长时间?我的 Lambda 也会超时吗(我假设我可以在该代码中休眠或挂起远程调用)?

我不确定 Alexa 的最大超时时间是多少,但我刚刚尝试执行 60 秒,它似乎有效。 Lambda 允许您在 Configuration/AdvancedSettings 下设置请求的超时。有一个分钟框,但从未尝试将超时设置为大于 10 秒。

响应超时由您的 AWS Lambda 后端设置。如果不从默认配置,超时默认为3秒。配置超时的规则记录在 Lambda FAQs:

Q: How long can an AWS Lambda function execute?

All calls made to AWS Lambda must complete execution within 300 seconds. The default timeout is 3 seconds, but you can set the timeout to any value between 1 and 300 seconds.

如果您的响应处理时间足够长以产生明显的等待,Echo 设备将快速闪烁其光环以指示正在进行的工作。这将继续,阻止与 Echo 设备的任何其他交互,直到返回响应或支持 Lambda 函数达到其超时限制。