我希望能够通过HTTPS请求提取IoT边缘设备的模块双胞胎,就像Azure所做的那样。在传送门,我看到了枪声..。
https://my-hub.azure-devices.net/twins/my-device/modules/my-module?api-version=2020-09-30&_=164130947416
...and返回JSON。我也想在门户外做同样的事情(比如邮递员之类的)。
显然,通过登录到门户,我就拥有了允许这样做的凭据。
我试过创建一个共享访问签名并将其用作标题,如……
"Authorization": "SharedAccessSignature sr=my-hub.azure-devices.net&sig=...
...but,我回来了,ErrorCode:IotHubUnauthorizedAccess;Unauthorized
我是不是遗漏了什么?也许是我用SAS来获得额外的证书之类的一步?
或者我不能创建一个适用于任何device-id的SAS
最后,我希望能够从我的任何一个GET集线器设备中为一个模块孪生体提供所报告的属性。没有设置,没有订阅。
发布于 2022-01-04 17:27:20
您所指的API是文档化的这里。您做的是对的,但是您创建共享访问签名的方法可能行不通。创建有效的SAS令牌的一个简单方法是使用az cli命令:az iot hub generate-sas-token -n <iot-hub-name>。默认情况下,它将为iothubowner策略创建一个令牌,该策略应该允许您访问模块双胞胎。
我使用Postman和您提到的授权头来检查设备$edgeHub模块的双胞胎:
https://<my-iot-hub>.azure-devices.net/twins/<device-id>/modules/$edgeHub?api-version=2020-05-31-previewhttps://stackoverflow.com/questions/70581910
复制相似问题