首页 > 解决方案 > 从 AWS lambda 向 IOT 设备发送请求并等待响应

问题描述

我创建了一个 alexa 智能家居技能。我目前正在从 AWS lambda 向我的树莓派发送请求,以获取使用 MQTT 的技能。然后响应由 lambda 生成,而不管 pi 上运行的任何逻辑,或者它甚至是否运行。我想发送一个响应,让 lambda 函数从 pi 返回。

我可以使用 MQTT 或 API 网关调用 lambda 函数,但这没有用,因为它需要能够访问实例以访问由 alexa 调用的函数以返回响应。

我可以使用 HTTP 来做到这一点,但我必须向我的 pi 公开一个端口。我没有足够的关于安全问题的知识来做这件事。

有没有办法通过 MQTT、Web 套接字或任何其他安全方法来实现这一点?

标签: amazon-web-servicesraspberry-piaws-lambdaaws-iot

解决方案


因此,您可以使用 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
});

};`

请让我知道您必须以这种方式实施。如果没有,我将为您提供另一种方式


推荐阅读