Получение настроек модуля IoT Edge - PullRequest
0 голосов
/ 17 сентября 2018

На портале Azure вы можете увидеть «Настройки модуля IoT Edge»:

enter image description here

Как мне получить доступ к этому программно из C #?

Когда я получаю список модулей на периферийном устройстве, кажется, что нет возможности получить настройки?

1 Ответ

0 голосов
/ 01 ноября 2018

Вы используете SDK / пакет клиента устройств Microsoft Azure и атакуете его следующим образом:

var registryManager = RegistryManager.CreateFromConnectionString(connString); //the connection string for your IOT Hub
var moduleTwins= new List<Twin>();
//var query = registryManager.CreateQuery($"SELECT * FROM devices", 100);
var query = registryManager.CreateQuery("SELECT * FROM devices.modules WHERE deviceId='MyEdgeDevice'",100);
while (query.HasMoreResults) {
    var page = await query.GetNextAsTwinAsync();
    moduleTwins.AddRange(page);
}

// this gets rid of all that version/metadata noise in a module/device twin
foreach (var module in moduleTwins) {
    module.Properties.Reported.ClearMetadata();
    module.Properties.Desired.ClearMetadata();
}

Теперь moduleTwins - теперь перечислимый список объекта-близнеца (который является прямым представлением двойников модуля / устройства). Помимо прочего, в нем также будут двойники $ edgeAgent и $ edgeHub - которые содержат все - и в списке modules для edgeAgent вы увидите больше этой информации для каждого модуля. (изображение, параметры создания, политика перезапуска и т. д.), которое можно найти в properties.desired.modules области

в $ edgeAgent.
   "modules": {
      "MyNeatModule": {
        "type": "docker",
        "settings": {
          "image": "myAzureContainerRegistry.io/myneatmodule:amd64.debug",
          "createOptions": "{}"
        },
        "status": "running",
        "restartPolicy": "always",
        "version": "1.0"
      },

и все, что вы ищете, находится в области $ edgeAgent properties.reported:

"modules": {
          "SuperNeatAwesomeModule": {
            "exitCode": 0,
            "statusDescription": "running",
            "lastStartTimeUtc": "2018-11-01T18:39:09.8814806Z",
            "lastExitTimeUtc": "2018-11-01T18:05:40.8350456Z",
            "restartCount": 0,
            "lastRestartTimeUtc": "2018-11-01T18:05:40.8350456Z",
            "runtimeStatus": "running",
            "version": "1.0",
            "status": "running",
            "restartPolicy": "always",
            "type": "docker",
            "settings": {
              "image": "blahblahblah.azurecr.io/superneatmodule:0.0.2-amd64.debug",
              "imageHash": "sha256:ladkjsfaldkjfasdflkjasdfljasfljkasflja4",
              "createOptions": "{}",
              "env":{}
...