Aws lambda 如何从Lambda函数将消息发送回设备?
我们是否可以通过Alexa Skill调用的Lambda函数向设备发送消息。该消息包含Lambda函数收集的一些值。 所以基本上我想这样做:Aws lambda 如何从Lambda函数将消息发送回设备?,aws-lambda,alexa-skill,aws-iot,Aws Lambda,Alexa Skill,Aws Iot,我们是否可以通过Alexa Skill调用的Lambda函数向设备发送消息。该消息包含Lambda函数收集的一些值。 所以基本上我想这样做: 设备-->语音命令-->Alexa技能--(触发器)-->Lambda功能 Lambda函数(收集值)--消息--->设备 Java中有什么例子吗 谢谢你的指点/帮助 -詹姆斯是一个非常相似的问题,答案是:“现在还不可能” 我将详细说明。您可以向技能(如新功能)的所有用户发送通知,但不能向调用函数的特定用户发送通知 要向所有启用通知的Alexa技能用户
- 设备-->语音命令-->Alexa技能--(触发器)-->Lambda功能
- Lambda函数(收集值)--消息--->设备
有关向特定用户发送通知的限制的更多信息,请参阅此文档。您所要求的内容可以完成 首先,语音命令不是来自图表中的人。 一个设备与Alexa通话。Alexa调用或触发Lambda。Lambda函数消息设备 Lambda内部的函数是
http
或https
。如果您的设备可以处理https或TLS加密,那么就很好了。但是大多数设备都很小,并且计算能力有限,因此最终将使用http。截至2020年,AWS允许http,但一年后,由于联邦法规,它要求您使用https或TLS 1.3。但直到它发生我们才知道
下面是NodeJS中Lambdahttp
post的示例。触发器数据来自请求
。因此,您应该知道将引入什么JSON,并使用if
语句从JSON中提取数据。
NodeJS网站有很好的http示例
现在,您的设备就是服务器。它必须预测Lambda请求并进行处理,如果需要,还必须回复Lambda
现在,您的设备可以通话并接收信息
const http = require('http');
exports.handler = async (request, context) => {
if (request.directive.header.namespace === 'FromAlexaSkill') {
httpost("This is your data to device", "192.168.1.2");
}
//**********************************************
let httpPost =async (postData, servername) => {
let dataString = '';
const response = await new Promise((resolve, reject) => {
const options = {
hostname: servername,
port: 1777,
path: '/dim',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(postData)
}
};
const req = http.request(options, (res) =>
{
res.setEncoding('utf8');
res.on('data', chunk => {
dataString += chunk;
});
res.on('end', () => {
resolve({
"body":dataString
});
});
});//http.request
req.on('error', (e) => {
console.error("problem with request: "+e.message);
reject({
statusCode: 500,
body: 'Something went wrong!'
});
});
// Write data to request body
req.write(postData);
req.end();
}); //Promise
return response;
};//httpPost
}
“向设备发送消息”是什么意思?Alexa函数返回要说的文本。您还想向设备发送什么?感谢您的回复,我看到Alexa函数返回一个“响应”,但如何在代码中获得该响应?有什么例子可以处理这种反应吗?再次感谢。你检查过表了吗?它链接到。目前最好的工具包使用node.js。它将帮助构建您发送回Alexa服务的响应对象,然后Alexa服务将与发出该命令的Alexa设备通信。