aws-lambda - 是否可以将alexa输出连接到amazon SQS
问题描述
我已经创建了一个 alexa 智能家居功能并希望异步运行它,因此计划使用 amazon sqs(Simple que service)功能。我将亚马逊 sqs 触发器输出连接到 lambda 函数,并成功地将消息从 sqs 发送到 lambda。现在需要将alexa连接到sqs输入。当我尝试在 Alexa 开发人员控制台中使用 sqs arn 时,它不支持它。有什么办法可以解决这个问题,或者 alexa 是否只支持 lambda 函数进行调用。
alexa 技能是用于智能家居服务来控制开关(打开/关闭),因此当尝试控制多个开关时,由于 lambda 的同步性质执行,它会一个接一个地打开开关。我需要一次控制它们,因此需要异步执行 lambda,其中请求需要在不等待响应的情况下执行。
提前感谢您的回答。
解决方案
AWS Lambda 可以异步工作。你可以让一堆后端进程按照他们的需要工作,根据需要触发各种 Lambda。
但是与 Alexa 的交换会向您的后端打开一个会话,发送它的请求,并且完整的响应预计会结束该会话。该响应可能具有下载其他内容以合并到响应中的指令,例如声音文件或延迟加载 APL 中的列表。但它期待得到全面回应。
如果您通过基本的 Cake Time 教程来构建 Alexa 技能,他们实际上对某些 API 使用 async-await,因为该响应必须在发送之前完成。
有一些异步 API,例如提醒和主动事件,但它们不是对话式的。它们是独特的单向消息。
真正的问题是为什么你觉得你需要这样做,你通过排队优化什么?
推荐阅读
- c# - 运行时的通用可配置条件检查器
- spring-boot - JHipster 在不使用初始模式的情况下创建新表实体
- sql - 用户 sa 的错误日志 sql server 错误登录失败。原因:密码与登录名不匹配... [客户端:xx.xx.xx.xx]
- sql - 显示大量相关数据的最有效方法是什么?
- reactjs - 为什么 React 钩子以这种方式命名为 useXXX?
- php - Symfony 4 从命令添加/更新实体
- kotlin - 如何让这个 placeRequest 获取预测的第一个结果?
- html - Django 错误说明模型字段未定义
- r - 我如何知道我的数据是否符合使用 R 的泊松分布?
- c - winAPI 中 L 前缀(LPCWSTR 类型转换)的问题