aws python sdk_AWS IoT SDK Python subscribe返回true,但未调用回调参数

在尝试从Raspberry Pi通过AWS IoT SDK Python发布传感器数据到DynamoDB并触发Lambda函数时,遇到问题:尽管subscribe返回true,但Lambda通过AWS IoT发送的响应未调用回调函数。已验证消息能成功发布到主题,但无法在Raspberry Pi上接收到。目前使用AWSIoTPythonSDK和Boto3,尝试过使用IoT Shadow解决方案,但希望能找到不改变现有架构的解决办法。
摘要由CSDN通过智能技术生成

我要做的是将传感器数据从Raspbery Pi发布到AWS,AWS将数据存储到DynamoDB并调用lambda函数。然后,这个lambda函数向raspberry Pi订阅的主题发布消息。在

所以我的问题是没有调用回调,所以我无法访问从AWS lambda发布的消息。我验证了这个消息是否被发布到由RaspberryPi在AWSIoT测试上订阅的主题。我在raspberry Pi上使用AWSIoTPythonSDK库,在AWS lambda函数上使用Boto3。在

另外,我读过一个使用AWS IoT shadow的解决方案,但是这个解决方案已经很快就要完成了——我不想放弃我的努力,因为它似乎有一行代码不起作用。Send data from cloud to aws iot thing

请让我知道如何进一步解决这个问题的任何想法。在

到目前为止,我已经尝试在subscribe函数之后打印堆栈,它从堆栈中输出这个堆栈:*我没有让整个循环完成*pi@raspberrypi:~/eve-pi $ pi@raspberrypi:~/eve-pi $ python3 sensor_random.py

for line in traceback.format_stack():

File "sensor_random.py", line 66, in

for line in traceback.format_stack():

^CTraceback (most recent call last):

File "sensor_random.py", line 68, in

time.sleep(2)

keyboardInterrupt

-bash: pi@raspberrypi:~/eve-pi: No such file or directory

这是Raspberry Pi代码:*****省略了发布代码*********

^{pr2}$

以下是AWS lambda代码:import json

import boto3

def lambda_handler(event, context):

#testing for pi publishing

message = {

'topic': 'thing02/water',

'payload': {'message': 'test'}

}

boto3.client(

'iot-data',

region_name='us-west-2',

aws_access_key_id='',

aws_secret_access_key='

).publish(

topic='thing02/water',

payload=json.dumps(message),

qos=1

)

print(json.dumps(message))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值