我是 AWS 世界的新手,目前正在开发一项 Alexa 技能,该技能只需向 AWS IoT Core 代理发布一条 mqtt 消息,与之前创建的“事物”和主题进行交互。
目前我正在使用 boto3 但我不确定这是正确的路径。
这是代码,但在部署 Lambda 并从 Alexa 调用意图时它不起作用。
import boto3
import json
payload = json.dumps(
{'state':
{
'desired': { 'irrigation': 'on' }
}
})
client = boto3.client('iot-data', region_name='us-west-2')
response = client.publish(
topic='$aws/things/gateway/shadow/update',
qos=1,
payload=payload
)
CloudWatch 没有显示任何异常,我只是从 Alexa 收到错误响应,并且如果订阅应触发发布的同一主题,则不会收到任何消息。
我正在使用“阴影”,也许这不是正确的做法?尝试了正常的主题,但效果不佳。
另外,我很想在发布之前调试代码。有没有一种简单的方法可以在不使用 CloudWatch 的情况下做到这一点?
TL;TR 只在网上找到了很多指南,都是这样的:iot core -> aws lambda。但我实际上正在寻找相反的情况:aws lambda -> 发布到物联网核心
另外,您可能需要这样的内联策略:
> {
> "Version": "2012-10-17",
> "Statement": [
> {
> "Effect": "Allow",
> "Action": [
> "iot:Publish"
> ],
> "Resource": [
> "*"
> ]
> }
> ] }
我根据几个月前第一次实现 lambda 发布时的另一篇 stackoverflow 帖子添加了这一点。直到几天前它都运行良好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)