繁体   English   中英

从 Lambda 将 MQTT 消息发布到 AWS IoT Core

[英]Publish MQTT message to AWS IoT Core from Lambda

我是 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 -> 发布到 iot 核心

此外,您可能需要这样的内联策略:

> {
>     "Version": "2012-10-17",
>     "Statement": [
>         {
>             "Effect": "Allow",
>             "Action": [
>                 "iot:Publish"
>             ],
>             "Resource": [
>                 "*"
>             ]
>         }
>     ] }

几个月前,当我第一次实现 lambda 发布时,我根据另一个 stackoverflow 帖子添加了这一点。 直到几天前它运行良好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM