amazon-web-services - 从 Lambda 向 AWS IoT Core 发布 MQTT 消息

标签 amazon-web-services aws-lambda boto3 mqtt aws-iot-core

我是 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 core

最佳答案

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

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

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

关于amazon-web-services - 从 Lambda 向 AWS IoT Core 发布 MQTT 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65330225/

相关文章:

amazon-web-services - Boto3 仅获取特定区域的 S3 存储桶

python - boto3 ec2中的分页描述实例

python - 导入时 Boto3 弃用警告

amazon-web-services - Amazon EC2 链接到 Bigrock 域名

amazon-web-services - cdk diff 与控制台更改没有区别

java - 如何使用 Jedis 连接到 AWS ElastiCache for Redis 集群?

amazon-web-services - AWS Lambda 函数 : Will Different Triggers Reuse an Exection Enviornment?

ios - 是否可以在 iOS 通知中隐藏部分消息?

amazon-web-services - 在方法请求中使用 AWS_IAM 授权时是否需要 AWS Gateway 自定义授权方?

amazon-web-services - 当SNS调用Lambda时,是否总是只有1条记录?