使用 REST 将数据发送到 Azure IoT 中心

Sending data to Azure IoT hub using REST

我正在尝试学习 Azure IoT 中心,但我无法使用 Postman 将数据发送到我的 IoT 中心。 我做了以下事情:

我的请求如下所示:

POST https://myhub.azure-devices.net/devices/MyDevice/messages/events?api-version=2020-03-13

我已经添加了权限header,其值为: SharedAccessSignature=SharedAccessSignature sr=myhub.azure-devices.net%2Fdevices%2FMyDevice&sig=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

其中键是从设备页面的 "primary key" 字段中复制的文本。

Content-type 设置为 application/json。但是 body 目前是空的。

我收到以下回复:

"Message": "ErrorCode:ServerError;InternalServerError",

注意:集线器和设备名称与此处所述不同。

你需要根据你的主键计算出auth header,而不是仅仅把它放到header中。有关如何执行此操作的示例,请参见 here,例如使用 CLI az iot hub generate-sas-token

对于 quick-start,我们有 3 个阶段 1) 从 Visual Studio 代码生成 SAS 密钥,见下图(或从 CLI,请看 silent 发布的答案) 2) 使用 Postman 3)通过VS代码监控

步骤: VS 代码

1) 为 Azure IoT 安装 VS Code 扩展工具并按照屏幕上的说明连接您的 IoT 中心

2) 你可以在VS code Explorer中看到设备列表。现在右键单击设备(在门户中创建)和 select 'Generate SAS Token for the device',以小时为单位输入时间,例如 24,然后从输出 window 中完全点击 enter.Copy SAS 密钥(整个).示例如下所示。

SharedAccessSignature sr=deviothub.azure-devices.net%2Fdevices%2FNewDevice&sig=H3II%2FCa5Km5V2pieP5Ti1SI%3D&se=1590867649

步数 邮递员

1) 希望您已经在 Azure IoT Hub REST API 上访问过此文档 将所需部分替换为您的 IoT 中心值。

POST https://fully-qualified-iothubname.azure-devices.net/devices/{id}/messages/events?api-version=2020-03-13

2) 确保包含完全复制的 SAS 令牌,并在 POST 调用

的 header 部分中使用它

3) Body 内容:这取决于您的用例。 示例 'raw'--JSON--> {"Temperature":54}

**您可以看到来自 IoT 中心的已接受响应为“204 无内容”

步骤 监控遥测的简单方法

1) 打开 VS Code 编辑器并右键单击特定设备并选择 'Start Monitoring the in built events'

2) 从 Postman 发送另一个遥测数据,您可以看到消息已到达 IoT 中心,并在 VS 代码监控屏幕上可见。

Azure IoT 学习愉快