我创建了alexa智能家居技能。我目前正在从AWS lambda向我的树莓派发送请求,以获取使用MQTT的技能。然后,无论pi上运行的任何逻辑是什么,甚至根本没有运行,lambda都会生成响应。我想发送一个响应,以使lambda函数从pi返回。
我可以使用MQTT或API网关调用lambda函数,但这没有用,因为它需要能够访问由Alexa调用的函数的实例才能返回响应。
我可以使用HTTP来执行此操作,但必须将端口公开给pi。我对安全问题没有足够的知识,无法轻松地做到这一点。
是否可以通过MQTT,Web套接字或任何其他安全方法来实现这一目标?
答案 0 :(得分:0)
因此您可以使用AWS Lambda函数中的mqtt向IoT设备发送请求。是的,可以通过创建将在主题上发布并且物联网设备将收到该请求的lambda函数
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
});
};`
pls让我知道您必须采用这种方式。如果没有,我会为您提供另一种方式