“设备连接字符串不正确。”错误 - Azure IoT 中心

问题描述 投票:0回答:2

尝试“将 Raspberry Pi 连接到 Azure IoT 中心 (Python)”教程,今天早上效果很好,但现在收到错误消息:

pi@raspberrypi:~/iot-hub-python-raspberrypi-client-app $ python app.py HostName=RPiHub.azure-devices.net;DeviceId=MyPi;SharedAccessKey=Rd++cewght3xMyzpzKeQkKIUxwLokI5BQpvanXYntXE=

Device connection string is not correct.

这是我尝试简单地运行应用程序时的情况。

在 app.py 中检查此错误的代码:

def is_correct_connection_string():
    m = re.search("HostName=.*;DeviceId=.*;", CONNECTION_STRING)
    if m:
        return True
    else:
        return False

教程说该字符串应该是“您的 Azure IoT 中心设备连接字符串”,我正是从教程所说的获取它的地方获取它。

奇怪的是,这一切之前都工作得很好,但现在尝试在新的 Pi 上再次执行此操作,但它只是拒绝工作。

我删除了Azure门户中的所有内容、所有资源等,从头开始尝试。是否有我遗漏或遗留的东西可能导致此问题?

python azure azure-iot-hub azure-iot-hub-device-management
2个回答
0
投票

您应该在命令中的设备连接字符串中添加引号。

python app.py "{Device Connection String}"

如果没有,CONNECTION_STRING将如下所示。

HostName=*.azure-devices.net

0
投票

有点晚了,但是教程中输出的连接字符串实际上是三个不同的值:连接字符串、设备 ID 和共享访问密钥,它们之间用分号分隔

;

从您提供的字符串中

RPiHub.azure-devices.net;DeviceId=MyPi;SharedAccessKey=Rd++cewght3xMyzpzKeQkKIUxwLokI5BQpvanXYntXE=
您只需要直到第一个分号。

在您的示例中,您应该使用

RPiHub.azure-devices.net
,但是,应该删除当前项目,因为它现在容易受到公开暴露的令牌的攻击。

© www.soinside.com 2019 - 2024. All rights reserved.