amazon-web-services - 从 AWS lambda 向 IOT 设备发送请求并等待响应
问题描述
我创建了一个 alexa 智能家居技能。我目前正在从 AWS lambda 向我的树莓派发送请求,以获取使用 MQTT 的技能。然后响应由 lambda 生成,而不管 pi 上运行的任何逻辑,或者它甚至是否运行。我想发送一个响应,让 lambda 函数从 pi 返回。
我可以使用 MQTT 或 API 网关调用 lambda 函数,但这没有用,因为它需要能够访问实例以访问由 alexa 调用的函数以返回响应。
我可以使用 HTTP 来做到这一点,但我必须向我的 pi 公开一个端口。我没有足够的关于安全问题的知识来做这件事。
有没有办法通过 MQTT、Web 套接字或任何其他安全方法来实现这一点?
解决方案
因此,您可以使用 AWS Lambda 函数中的 mqtt 向 IoT 设备发送请求。是的,可以通过创建将在主题上发布的 lambda 函数,而 iot 设备将收到它
var AWS = require("aws-sdk");
exports.handler = (event, context, callback) => {
var iotdata = new AWS.IotData({
endpoint: 'akugdx70brb.iot.us-west-2.amazonaws.com:8883',
apiVersion: '2015-05-28'
});
var params = {
topic: 'terminal2/test/',
payload: new Buffer('...') || 'STRING_VALUE',
qos:1
};
iotdata.publish(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
};`
请让我知道您必须以这种方式实施。如果没有,我将为您提供另一种方式
推荐阅读
- python - katana (python):编码问题或错误?
- python - VS-Code中保存移动导入语句的格式
- java - 注入具有特定接口的所有 bean 列表
- php - 按关系分组 laravel
- python - 我可以获得代码审查吗?如果我能更有效地做到这一点,需要帮助
- c# - 如何在不使用内置 c# 方法的情况下反转字符串
- python - 为什么一些相同的 POST 请求比其他请求长两到三倍?
- android - 如何更改 BottomNavigationBar 背景颜色?
- ruby-on-rails - 将可跟踪(设计)添加到现有用户模型?
- excel - VBA单击网页中的Onclick按钮“包含验证功能”