Можем ли мы вызвать прямой метод конечного устройства одного модуля из другого модуля?

#.net #azure #iot #azure-iot-edge

#.net #лазурный #iot #azure-iot-edge #azure

Вопрос:

Я разработал два пользовательских пограничных модуля IoT, например, Module1, Module2

В модуле 1 внутри контейнера запущено несколько устройств интернета вещей (конечных устройств).

На этих конечных устройствах написаны определенные прямые методы, например, IsDeviceOnline

Возможно ли вызвать этот прямой метод из Module2?

Я пытался, написав идентификатор конечного устройства при вызове, как показано ниже, но это дает {"status":500,"payload":null} всегда.

 MethodRequest request = new MethodRequest("IsDeviceOnline");
var resp = await moduleclient.InvokeMethodAsync(deviceId, "Module1", request);
  

приведенный выше код выполняется из Module2

Ответ №1:

Я нашел решение…

Я только что удалил ModuleID, и он работает нормально

 MethodRequest request = new MethodRequest("IsDeviceOnline");
         // Execute request
         var resp = await moduleclient.InvokeMethodAsync(deviceId, request);
  

Комментарии:

1. Рад слышать, что ваша проблема решена. Пожалуйста, примите ваше решение в качестве ответа, чтобы оно помогло и другим.

2. Добавляем тот же вопрос, что и в Q amp; A для справки: learn.microsoft.com/en-us/answers/questions/72328/index.html

3. Конечно, принял это