Как получить «user-Id» на сообщениях IoT Hub - PullRequest
1 голос
/ 20 января 2020

Я использую EventHubTrigger и EventData для получения сообщения IotHub, и я хочу получить "user-Id" в EventData.SystemProperties. Следуйте https://docs.microsoft.com/bs-cyrl-ba/azure/iot-hub/iot-hub-devguide-messages-construct Я установил Message.UserId от Microsoft. Azure .Devices.Client, но все еще не могу получить его в EvenData.SystemProperties

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 20 января 2020

В следующих фрагментах экрана показан пример свойства user-id для данных телеметрии.

  1. Виртуальное устройство (представлено моим Azure IoT Hub Tester ) публикует данные телеметрии с systemperroperty $. Uid = ABCD1234

enter image description here

Данные телеметрии принимаются функцией azure:

public static void Run2([IoTHubTrigger("messages/events", Connection = "AzureIoTHubConnectionString")]EventData message, ILogger log)
{
    log.LogInformation($"\nBody:\n\t{Encoding.UTF8.GetString(message.Body.Array)}" +
                       $"\nSystemProperties:\n\t{string.Join("\n\t", message.SystemProperties.Select(i => $"{i.Key}={i.Value}"))}" +
                       $"\nProperties:\n\t{string.Join("\n\t", message.Properties.Select(i => $"{ i.Key}={ i.Value}"))}");          

    log.LogInformation($"user-id={System.Text.Encoding.UTF8.GetString(((ArraySegment<byte>)message.SystemProperties["user-id"]).Array)}");
}

Журнал функции azure:

enter image description here

Обратите внимание, что тип значения user-id systemproperty равен

ArraySegment<byte>
...