2017-09-13 54 views
1

我已將路由設置爲更新雙端口,並選擇端點作爲Iot集線器支持的事件(默認),但它不起作用。如何實現Azure Iot-Hub中Twin Change的路由功能?

下面是截圖

screenshot

難道我做錯了什麼或缺少的東西? 任何意見或引用其他材料,將不勝感激。

+0

你如何接收這些事件?你能顯示你的代碼嗎? –

+0

@Rita Hab對於接收事件,我使用azure函數並嘗試了EventHubTrigger和IoT Hub(EventHub) - JavaScript模板。這裏是如下: 'module.exports = function(context,IoTHubMessages){ context.log('JavaScript eventhub trigger function called for message array $ {IoTHubMessages}'); IoTHubMessages.forEach(message => {context.log('Processed message $ {JSON.stringify(message)}'); }); context.done(); };' –

+0

@Rita Han在函數json綁定: {「bindings」:[{「type」:「eventHubTrigger」,「name」:「IoTHubMessages」,「direction」:「in」,「path」: 「iothub-ehub-HUBNAME-192805-73caa1654c」,「connection」:「HUBNAME_events_IOTHUB」,「cardinality」:「many」,「consumerGroup」:「myconsumer」}],「disabled」:false} –

回答

0

最後,我得到了解決辦法,我只需切換到從頭它工作完全正常的另一個帳戶和設置的一切。

我注意到的唯一區別是在美國西部我的舊帳戶中的位置,並在美國中部地區新帳戶的位置。我沒有找到確切的解決方案,但它爲我工作。但我仍然想知道是基於位置的問題還是其他?

0

您的路線設置是正確的。我猜測問題出在Azure IoT Hub事件的客戶端(缺省端點)上。您可以使用Device Explorer工具進行測試。下面的屏幕片段展示了我的例子:

DeviceExplorer

其他快速選擇消費這些事件是創造一個蔚藍的功能

using System; 

public static void Run(string myIoTHubMessage, TraceWriter log) 
{ 
    log.Info($"C# IoT Hub trigger function processed a message: {myIoTHubMessage}"); 
} 

function.json文件:

{ 
    "bindings": [ 
    { 
     "type": "eventHubTrigger", 
     "name": "myIoTHubMessage", 
     "direction": "in", 
     "path": "myPath", 
     "connection": "myevents_IOTHUB", 
     "consumerGroup": "$Default", 
     "cardinality": "many" 
    } 
    ], 
    "disabled": true 
} 
  • 還有一件事,你可以按下按鈕運行測試比賽。應顯示結果:比賽
+0

我創建了Azure函數來使用Azure IoT Hub事件(默認端點),但是我沒有提到得到任何雙胞胎更新觸發器,我唯一得到的是從設備SDK發送的iot-hub消息。 –

+0

我也獨立地測試路由功能,結果是我也得到了結果:匹配 –

+0

對於更新設備孿生我更新了設備孿生從iot-hub門戶的期望值,並且還改變了來自設備側SDK的報告值,但是對於兩種方式都沒有觸發發生。 –