我希望能夠像 Azure 門戶一樣通過 HTTPS GET 請求拉取 IoT Edge 設備的模塊孿生。在傳送門中,我看到了這個射擊……
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 獲得一些額外的憑證或其他什么的步驟?
或者也許我無法創建一個適用于任何 SAS 的 SAS device-id?
最后,我希望能夠GET從我的任何 IoT 中心設備報告模塊孿生的屬性。沒有設定,沒有訂閱。
uj5u.com熱心網友回復:
您所指的 API 記錄在此處。您正在做正確的事情,但您創建共享訪問簽名的方法可能不起作用。創建有效 SAS 令牌的一種簡單方法是使用az cli 命令:az iot hub generate-sas-token -n <iot-hub-name>. 默認情況下,它將為iothubowner策略創建一個令牌,這應該使您可以訪問模塊孿生。
我使用 Postman 和您提到的 Authorization 標頭來檢查我的設備 $edgeHub 模塊的雙胞胎:
https://<my-iot-hub>.azure-devices.net/twins/<device-id>/modules/$edgeHub?api-version=2020-05-31-preview
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/406807.html
標籤:
