【问题标题】:Is it possible to connect alexa output to amazon SQS是否可以将alexa输出连接到amazon SQS
【发布时间】:2021-03-31 19:58:38
【问题描述】:

我创建了一个 alexa 智能家居功能并希望异步运行它,因此计划使用 amazon sqs(简单查询服务)功能。我将亚马逊 sqs 触发器输出连接到 lambda 函数,并成功地将消息从 sqs 发送到 lambda。现在需要将alexa连接到sqs输入。当我尝试在 Alexa 开发人员控制台中使用 sqs arn 时,它不支持它。有什么办法可以解决这个问题,或者alexa是否只支持lambda函数进行调用。

alexa 技能是用于智能家居服务控制开关(打开/关闭),因此当尝试控制多个开关时,由于 lambda 的同步性质执行,它会一个接一个地打开开关。我需要一次性控制它们,因此需要异步执行 lambda,其中请求需要执行而不等待响应。

提前感谢您的回答。

【问题讨论】:

    标签: aws-lambda amazon-sqs alexa alexa-skills-kit alexa-voice-service


    【解决方案1】:

    它不会工作,因为 SQS 是异步工作的,只是回复该消息已放在那里。但是 Alexa 需要一个带有语音标签的有效 JSON 响应,等等,而 SQS 无法实现这一点。 你可以做什么: Alexa -> Lambda(新)-> SQS - Lambda 在您新创建的 lambda 中,您可以向 Alexa 提供有效回复并在 SQS 中输入一条消息。

    【讨论】:

    • 这是使alexa异步工作的唯一方法吗,之前它可以正常工作而不会延迟打开/关闭最近工作只是它一个一个地改变了执行。
    【解决方案2】:

    AWS Lambda 可以异步工作。您可以让一堆后端进程按照他们的需要工作,根据需要触发各种 Lambda。

    但是与 Alexa 的交换会向您的后端打开一个会话,发送它的请求,并且完整的响应预计会结束该会话。该响应可能具有下载其他内容以合并到响应中的指令,例如声音文件或延迟加载 APL 中的列表。但它期待得到全面回应。

    如果您通过基本的 Cake Time 教程来构建 Alexa 技能,他们实际上将 async-await 用于某些 API,因为该响应必须在发送之前完成。

    有一些异步 API,例如提醒和主动事件,但它们不是对话式的。它们是独特的单向消息。

    真正的问题是你为什么觉得你需要这样做,你通过排队优化什么?

    【讨论】:

    • alexa 技能是为智能家居服务控制开关(打开/关闭),所以当由于 lambda 同步执行而尝试控制多个开关时,它会一个接一个地打开开关。我需要一次控制它们,所以需要异步执行 lambda
    猜你喜欢
    • 1970-01-01
    • 2016-02-24
    • 2014-09-12
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多