Как получить deviceid сообщения в функции Azure, которая запускается сообщением IOThub

У меня есть функция Azure, запускаемая IOThub. Итак, в функции Azure у меня есть

public static async Task Run(EventData myIoTHubMessage1, TraceWriter log)

Как мне получить идентификатор устройства из данных о событии.

Я пытался

log.Info("devid="+myIoTHubMessage1.SystemProperties["ConnectionDeviceId"]);

Это дало ошибку, говоря

The given key was not present in the dictionary.

в следующем документе говорится, что https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct

ConnectionDeviceId содержит идентификатор устройства. Кто-нибудь знает, как получить идентификатор устройства из EventData, или мне следует использовать какой-то другой класс.


person Aparna    schedule 23.02.2018    source источник


Ответы (1)


Вы можете получить идентификатор устройства из SystemProperties:

public static async Task Run(EventData myIoTHubMessage1, TraceWriter log)
{
    var deviceId = myIoTHubMessage1.SystemProperties["iothub-connection-device-id"];
    // ....
}
person Mikhail Shilkov    schedule 23.02.2018