创建必要的 SAS-Key 与 Azure IoT-Hub 通信

Creating the necessary SAS-Key to communicate with the Azure IoT-Hub

我们目前正在使用 Azure IoT-Hub 从我们的物联网设备接收数据。他们目前正在使用 REST API 发送他们的数据,因此他们将 POST 数据发送到像 https://<iothubname>.azure-devices.net/devices/<deviceID>/messages/events

这样的地址

替换为它们的特定定义。对于授权,我将字段 "Authorization" 添加到 header 并粘贴了我使用 Azure IoT 插件为 VS 代码创建的设备的 SAS 令牌。到目前为止这是有效的,但我现在想自己创建令牌以进一步自动化。

MS 解释了如何创建令牌 on their site,但它对我不起作用(我已经尝试了 python 实现)。

对于 URI,我将使用上面的 URI,对于密钥,我将使用 IoT-Hub 中设备的密钥,但我不确定 policy_name 使用什么。我尝试了默认的“iothubowner”和设备名称。

此外,创建的 SAS 密钥的结构与 Azure IoT 插件创建的结构不同。

第一个包含srsigseskn部分,后面的srsigse

如果您使用链接到的 Python 示例,则需要使用以下参数:

  • URI:<iothubname>.azure-devices.net/devices/<deviceID>/messages/events?api-version=2020-03-13

不包括协议,包括 API 版本

  • 键:<primary/secondary key>
  • policy_name: None

作为设备连接时不需要策略名称|

这将生成一个正确的 SharedAccessSignature,您可以使用它来 POST https://<iothubname>.azure-devices.net/devices/<deviceID>/messages/events?api-version=2020-03-13