是否通过 Azure IoT 中心的 API 读取模块孪生数据?



我希望能够像Azure门户一样,通过HTTPS GET请求提取物联网边缘设备的模块双胞胎。在传送门里,我看到这个开火。。。

https://my-hub.azure-devices.net/twins/my-device/modules/my-module?api-version=2020-09-30&_=164130947416

并返回JSON。我想在门户之外做同样的事情(比如在Postman之类的地方(。

很明显,通过登录门户,我就拥有了允许这样做的凭据。

我尝试过创建一个共享访问签名,并将其用作头,就像这样…

"Authorization": "SharedAccessSignature sr=my-hub.azure-devices.net&sig=...

但我得到了ErrorCode:IotHubUnauthorizedAccess;Unauthorized

我是不是错过了什么?也许是我使用SAS获得一些额外凭证或其他东西的步骤?

或者我不能创建一个适用于任何device-id的SAS?

最后,我只想能够从我的任何IoT Hub设备中GET模块双胞胎的报告属性。没有设置,就没有订阅。

这里介绍了您所指的API。您正在做正确的事情,但也许您创建共享访问签名的方法不起作用。创建有效SAS令牌的一种简单方法是使用az-cli命令:az iot hub generate-sas-token -n <iot-hub-name>。默认情况下,它将为iothubowner策略创建一个令牌,该令牌应允许您访问模块twin。

我使用Postman,使用您提到的授权标头来检查我的设备$edgeHub模块的双胞胎:

https://<my-iot-hub>.azure-devices.net/twins/<device-id>/modules/$edgeHub?api-version=2020-05-31-preview

最新更新